die "No search arguments were passed to ".$self->api_name;
}
- my (@statuses,@types,@forms,@lang,@aud,@lit_form,@vformats);
+ my (@statuses,@types,@forms,@lang,@aud,@lit_form,@vformats,@bib_level);
if ($args{available}) {
@statuses = (0,7);
@types = @$t;
}
+ if (my $b = $args{bib_level}) {
+ $b = [$b] if (!ref($b));
+ @bib_level = @$b;
+ }
+
if (my $v = $args{vr_format}) {
$v = [$v] if (!ref($v));
@vformats = @$v;
my $param_types = '$${' . join(',', map { s/\$//go; $_ } @types) . '}$$';
my $param_forms = '$${' . join(',', map { s/\$//go; $_ } @forms) . '}$$';
my $param_vformats = '$${' . join(',', map { s/\$//go; $_ } @vformats) . '}$$';
+ my $param_bib_level = '$${' . join(',', map { s/\$//go; $_ } @bib_level) . '}$$';
my $param_pref_lang = $args{preferred_language}; $param_pref_lang =~ s/\$//go; $param_pref_lang = '$$'.$param_pref_lang.'$$';
my $param_pref_lang_multiplier = $args{preferred_language_weight}; $param_pref_lang_multiplier ||= 'NULL';
my $param_sort = $args{'sort'}; $param_sort =~ s/\$//go; $param_sort = '$$'.$param_sort.'$$';
$param_types,
$param_forms,
$param_vformats,
+ $param_bib_level,
$param_pref_lang,
$param_pref_lang_multiplier,
$param_sort,
param_types TEXT[],
param_forms TEXT[],
param_vformats TEXT[],
+ param_bib_level TEXT[],
param_pref_lang TEXT,
param_pref_lang_multiplier REAL,
param_sort TEXT,
where_clause = where_clause || $$ AND mrd.vr_format IN ('$$ || array_to_string(param_vformats, $$','$$) || $$') $$;
END IF;
+ IF param_bib_level IS NOT NULL AND array_upper(param_bib_level, 1) > 0 THEN
+ where_clause = where_clause || $$ AND mrd.bib_level IN ('$$ || array_to_string(param_bib_level, $$','$$) || $$') $$;
+ END IF;
+
core_rel_query := select_clause || from_clause || where_clause ||
' GROUP BY 1 ORDER BY 4' || CASE WHEN sort_desc THEN ' DESC' ELSE ' ASC' END || ';';
--RAISE NOTICE 'Base Query: %', core_rel_query;