3 INSERT INTO config.upgrade_log (version) VALUES ('0420'); -- miker
5 CREATE OR REPLACE FUNCTION metabib.reingest_metabib_rec_descriptor( bib_id BIGINT ) RETURNS VOID AS $func$
7 PERFORM * FROM config.internal_flag WHERE name = 'ingest.assume_inserts_only' AND enabled;
9 DELETE FROM metabib.rec_descriptor WHERE record = bib_id;
11 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)
13 biblio.marc21_extract_fixed_field( bib_id, 'Type' ),
14 biblio.marc21_extract_fixed_field( bib_id, 'Form' ),
15 biblio.marc21_extract_fixed_field( bib_id, 'BLvl' ),
16 biblio.marc21_extract_fixed_field( bib_id, 'Ctrl' ),
17 biblio.marc21_extract_fixed_field( bib_id, 'ELvl' ),
18 biblio.marc21_extract_fixed_field( bib_id, 'Audn' ),
19 biblio.marc21_extract_fixed_field( bib_id, 'LitF' ),
20 biblio.marc21_extract_fixed_field( bib_id, 'TMat' ),
21 biblio.marc21_extract_fixed_field( bib_id, 'Desc' ),
22 biblio.marc21_extract_fixed_field( bib_id, 'DtSt' ),
23 biblio.marc21_extract_fixed_field( bib_id, 'Lang' ),
25 FROM biblio.marc21_physical_characteristics( bib_id) p
26 JOIN config.marc21_physical_characteristic_subfield_map s ON (s.id = p.subfield)
27 JOIN config.marc21_physical_characteristic_value_map v ON (v.id = p.value)
28 WHERE p.ptype = 'v' AND s.subfield = 'e' ),
29 LPAD(NULLIF(REGEXP_REPLACE(NULLIF(biblio.marc21_extract_fixed_field( bib_id, 'Date1'), ''), E'\\D', '0', 'g')::INT,0)::TEXT,4,'0'),
30 LPAD(NULLIF(REGEXP_REPLACE(NULLIF(biblio.marc21_extract_fixed_field( bib_id, 'Date2'), ''), E'\\D', '9', 'g')::INT,9999)::TEXT,4,'0');
34 $func$ LANGUAGE PLPGSQL;
36 UPDATE metabib.rec_descriptor
37 SET date1=LPAD(NULLIF(REGEXP_REPLACE(NULLIF(date1, ''), E'\\D', '0', 'g')::INT,0)::TEXT,4,'0'),
38 date2=LPAD(NULLIF(REGEXP_REPLACE(NULLIF(date2, ''), E'\\D', '9', 'g')::INT,9999)::TEXT,4,'0');