3 INSERT INTO config.upgrade_log (version) VALUES ('0330');
5 CREATE TABLE metabib.facet_entry (
6 id BIGSERIAL PRIMARY KEY,
7 source BIGINT NOT NULL,
12 INSERT INTO metabib.facet_entry (source, field, value)
13 SELECT source, field, value FROM (
14 SELECT * FROM metabib.author_field_entry
16 SELECT * FROM metabib.keyword_field_entry
18 SELECT * FROM metabib.identifier_field_entry
20 SELECT * FROM metabib.title_field_entry
22 SELECT * FROM metabib.subject_field_entry
24 SELECT * FROM metabib.series_field_entry
26 WHERE x.index_vector = '';
28 DELETE FROM metabib.author_field_entry WHERE index_vector = '';
29 DELETE FROM metabib.keyword_field_entry WHERE index_vector = '';
30 DELETE FROM metabib.identifier_field_entry WHERE index_vector = '';
31 DELETE FROM metabib.title_field_entry WHERE index_vector = '';
32 DELETE FROM metabib.subject_field_entry WHERE index_vector = '';
33 DELETE FROM metabib.series_field_entry WHERE index_vector = '';
35 CREATE INDEX metabib_facet_entry_field_idx ON metabib.facet_entry (field);
36 CREATE INDEX metabib_facet_entry_value_idx ON metabib.facet_entry (SUBSTRING(value,1,1024));
37 CREATE INDEX metabib_facet_entry_source_idx ON metabib.facet_entry (source);
39 CREATE OR REPLACE FUNCTION metabib.reingest_metabib_field_entries( bib_id BIGINT ) RETURNS VOID AS $func$
42 ind_data metabib.field_entry_template%ROWTYPE;
44 FOR fclass IN SELECT * FROM config.metabib_class LOOP
45 -- RAISE NOTICE 'Emptying out %', fclass.name;
46 EXECUTE $$DELETE FROM metabib.$$ || fclass.name || $$_field_entry WHERE source = $$ || bib_id;
49 DELETE FROM metabib.facet_entry WHERE source = bib_id;
51 FOR ind_data IN SELECT * FROM biblio.extract_metabib_field_entry( bib_id ) LOOP
52 IF ind_data.field < 0 THEN
53 ind_data.field = -1 * ind_data.field;
54 INSERT INTO metabib.facet_entry (field, source, value)
55 VALUES (ind_data.field, ind_data.source, ind_data.value);
58 INSERT INTO metabib.$$ || ind_data.field_class || $$_field_entry (field, source, value)
60 quote_literal(ind_data.field) || $$, $$ ||
61 quote_literal(ind_data.source) || $$, $$ ||
62 quote_literal(ind_data.value) ||
70 $func$ LANGUAGE PLPGSQL;