3 INSERT INTO config.upgrade_log (version) VALUES ('0411'); -- gmc
5 INSERT INTO config.internal_flag (name) VALUES ('ingest.assume_inserts_only');
7 CREATE OR REPLACE FUNCTION metabib.reingest_metabib_rec_descriptor( bib_id BIGINT ) RETURNS VOID AS $func$
9 PERFORM * FROM config.internal_flag WHERE name = 'ingest.assume_inserts_only' AND enabled;
11 DELETE FROM metabib.rec_descriptor WHERE record = bib_id;
13 INSERT INTO metabib.rec_descriptor (record, item_type, item_form, bib_level, control_type, enc_level, audience, lit_form, type_mat, cat_form, pub_status, item_lang, vr_format, date1, date2)
15 biblio.marc21_extract_fixed_field( bib_id, 'Type' ),
16 biblio.marc21_extract_fixed_field( bib_id, 'Form' ),
17 biblio.marc21_extract_fixed_field( bib_id, 'BLvl' ),
18 biblio.marc21_extract_fixed_field( bib_id, 'Ctrl' ),
19 biblio.marc21_extract_fixed_field( bib_id, 'ELvl' ),
20 biblio.marc21_extract_fixed_field( bib_id, 'Audn' ),
21 biblio.marc21_extract_fixed_field( bib_id, 'LitF' ),
22 biblio.marc21_extract_fixed_field( bib_id, 'TMat' ),
23 biblio.marc21_extract_fixed_field( bib_id, 'Desc' ),
24 biblio.marc21_extract_fixed_field( bib_id, 'DtSt' ),
25 biblio.marc21_extract_fixed_field( bib_id, 'Lang' ),
27 FROM biblio.marc21_physical_characteristics( bib_id) p
28 JOIN config.marc21_physical_characteristic_subfield_map s ON (s.id = p.subfield)
29 JOIN config.marc21_physical_characteristic_value_map v ON (v.id = p.value)
30 WHERE p.ptype = 'v' AND s.subfield = 'e' ),
31 biblio.marc21_extract_fixed_field( bib_id, 'Date1'),
32 biblio.marc21_extract_fixed_field( bib_id, 'Date2');
36 $func$ LANGUAGE PLPGSQL;
38 CREATE OR REPLACE FUNCTION metabib.reingest_metabib_full_rec( bib_id BIGINT ) RETURNS VOID AS $func$
40 PERFORM * FROM config.internal_flag WHERE name = 'ingest.assume_inserts_only' AND enabled;
42 DELETE FROM metabib.real_full_rec WHERE record = bib_id;
44 INSERT INTO metabib.real_full_rec (record, tag, ind1, ind2, subfield, value)
45 SELECT record, tag, ind1, ind2, subfield, value FROM biblio.flatten_marc( bib_id );
49 $func$ LANGUAGE PLPGSQL;
51 CREATE OR REPLACE FUNCTION metabib.reingest_metabib_field_entries( bib_id BIGINT ) RETURNS VOID AS $func$
54 ind_data metabib.field_entry_template%ROWTYPE;
56 PERFORM * FROM config.internal_flag WHERE name = 'ingest.assume_inserts_only' AND enabled;
58 FOR fclass IN SELECT * FROM config.metabib_class LOOP
59 -- RAISE NOTICE 'Emptying out %', fclass.name;
60 EXECUTE $$DELETE FROM metabib.$$ || fclass.name || $$_field_entry WHERE source = $$ || bib_id;
62 DELETE FROM metabib.facet_entry WHERE source = bib_id;
65 FOR ind_data IN SELECT * FROM biblio.extract_metabib_field_entry( bib_id ) LOOP
66 IF ind_data.field < 0 THEN
67 ind_data.field = -1 * ind_data.field;
68 INSERT INTO metabib.facet_entry (field, source, value)
69 VALUES (ind_data.field, ind_data.source, ind_data.value);
72 INSERT INTO metabib.$$ || ind_data.field_class || $$_field_entry (field, source, value)
74 quote_literal(ind_data.field) || $$, $$ ||
75 quote_literal(ind_data.source) || $$, $$ ||
76 quote_literal(ind_data.value) ||
84 $func$ LANGUAGE PLPGSQL;