When using LEFT joins other views error out due to null fields in HSTORE,
causing failures in circ amongst other things.
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
m.attr AS attr,
m.value AS value
FROM metabib.record_attr_vector_list v
- LEFT JOIN metabib.uncontrolled_record_attr_value m ON ( m.id = ANY( v.vlist ) )
+ JOIN metabib.uncontrolled_record_attr_value m ON ( m.id = ANY( v.vlist ) )
UNION
SELECT v.source AS id,
c.ctype AS attr,
c.code AS value
FROM metabib.record_attr_vector_list v
- LEFT JOIN config.coded_value_map c ON ( c.id = ANY( v.vlist ) );
+ JOIN config.coded_value_map c ON ( c.id = ANY( v.vlist ) );
CREATE VIEW metabib.record_attr AS
SELECT id, HSTORE( ARRAY_AGG( attr ), ARRAY_AGG( value ) ) AS attrs FROM metabib.record_attr_flat GROUP BY 1;
--- /dev/null
+CREATE OR REPLACE VIEW metabib.record_attr_flat AS
+ SELECT v.source AS id,
+ m.attr AS attr,
+ m.value AS value
+ FROM metabib.record_attr_vector_list v
+ JOIN metabib.uncontrolled_record_attr_value m ON ( m.id = ANY( v.vlist ) )
+ UNION
+ SELECT v.source AS id,
+ c.ctype AS attr,
+ c.code AS value
+ FROM metabib.record_attr_vector_list v
+ JOIN config.coded_value_map c ON ( c.id = ANY( v.vlist ) );