IF ccvm_ctype IS NOT NULL THEN
ccvm_filter_join := $x$
- JOIN metabib.browse_entry_def_map mbedm ON (mbedm.entry = mbe.id)
- JOIN metabib.record_attr_vector_list vec ON (vec.source = mbedm.source)
- JOIN config.coded_value_map ccvm ON (
- ccvm.ctype = $x$ || QUOTE_LITERAL(ccvm_ctype) || $x$
- AND ccvm.id = ANY (vec.vlist)
- AND ccvm.code = $x$ || QUOTE_LITERAL(ccvm_code) || $x$
+ AND EXISTS (
+ SELECT TRUE FROM metabib.browse_entry_def_map mbedm
+ JOIN metabib.record_attr_vector_list vec ON (vec.source = mbedm.source)
+ JOIN config.coded_value_map ccvm ON (
+ ccvm.ctype = $x$ || QUOTE_LITERAL(ccvm_ctype) || $x$
+ AND ccvm.id = ANY (vec.vlist)
+ AND ccvm.code = $x$ || QUOTE_LITERAL(ccvm_code) || $x$
+ )
+ WHERE mbedm.entry = mbe.id
)
$x$;
END IF;
mbe.value,
mbe.sort_value
FROM metabib.browse_entry mbe
- ' || ccvm_filter_join || '
WHERE mbe.metabib_fields_cache && ' || quote_literal(search_field) ||
+ ccvm_filter_join ||
' AND ';
-- This is the variant of the query for browsing backward.