SELECT DISTINCT m.ts_config, m.index_weight
FROM config.metabib_class_ts_map m
- JOIN metabib.record_attr_vector_list r ON (r.source = NEW.source)
+ LEFT JOIN metabib.record_attr_vector_list r ON (r.source = NEW.source)
LEFT JOIN config.coded_value_map ccvm ON (
ccvm.ctype IN ('item_lang', 'language') AND
ccvm.code = m.index_lang AND
r.vlist @> intset(ccvm.id)
)
WHERE m.field_class = TG_ARGV[0]
+ AND m.active
AND (m.always OR NOT EXISTS (SELECT 1 FROM config.metabib_field_ts_map WHERE metabib_field = NEW.field))
+ AND (m.index_lang IS NULL OR ccvm.id IS NOT NULL)
UNION
SELECT DISTINCT m.ts_config, m.index_weight
FROM config.metabib_field_ts_map m
- JOIN metabib.record_attr_vector_list r ON (r.source = NEW.source)
+ LEFT JOIN metabib.record_attr_vector_list r ON (r.source = NEW.source)
LEFT JOIN config.coded_value_map ccvm ON (
ccvm.ctype IN ('item_lang', 'language') AND
ccvm.code = m.index_lang AND
r.vlist @> intset(ccvm.id)
)
WHERE m.metabib_field = NEW.field
+ AND m.active
+ AND (m.index_lang IS NULL OR ccvm.id IS NOT NULL)
ORDER BY index_weight ASC
LOOP
SELECT DISTINCT m.ts_config, m.index_weight
FROM config.metabib_class_ts_map m
- JOIN metabib.record_attr_vector_list r ON (r.source = NEW.source)
+ LEFT JOIN metabib.record_attr_vector_list r ON (r.source = NEW.source)
LEFT JOIN config.coded_value_map ccvm ON (
ccvm.ctype IN ('item_lang', 'language') AND
ccvm.code = m.index_lang AND
r.vlist @> intset(ccvm.id)
)
WHERE m.field_class = TG_ARGV[0]
+ AND m.active
AND (m.always OR NOT EXISTS (SELECT 1 FROM config.metabib_field_ts_map WHERE metabib_field = NEW.field))
+ AND (m.index_lang IS NULL OR ccvm.id IS NOT NULL)
UNION
SELECT DISTINCT m.ts_config, m.index_weight
FROM config.metabib_field_ts_map m
- JOIN metabib.record_attr_vector_list r ON (r.source = NEW.source)
+ LEFT JOIN metabib.record_attr_vector_list r ON (r.source = NEW.source)
LEFT JOIN config.coded_value_map ccvm ON (
ccvm.ctype IN ('item_lang', 'language') AND
ccvm.code = m.index_lang AND
r.vlist @> intset(ccvm.id)
)
WHERE m.metabib_field = NEW.field
+ AND m.active
+ AND (m.index_lang IS NULL OR ccvm.id IS NOT NULL)
ORDER BY index_weight ASC
LOOP