]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/sql/Pg/upgrade/0420.schema.premunge_dates.sql
LP1889113 Staff catalog record holds sticky org select
[Evergreen.git] / Open-ILS / src / sql / Pg / upgrade / 0420.schema.premunge_dates.sql
1 BEGIN;
2
3 INSERT INTO config.upgrade_log (version) VALUES ('0420'); -- miker
4
5 CREATE OR REPLACE FUNCTION metabib.reingest_metabib_rec_descriptor( bib_id BIGINT ) RETURNS VOID AS $func$
6 BEGIN
7     PERFORM * FROM config.internal_flag WHERE name = 'ingest.assume_inserts_only' AND enabled;
8     IF NOT FOUND THEN
9         DELETE FROM metabib.rec_descriptor WHERE record = bib_id;
10     END IF;
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)
12         SELECT  bib_id,
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' ),
24                 (   SELECT  v.value
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');
31
32     RETURN;
33 END;
34 $func$ LANGUAGE PLPGSQL;
35
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');
39
40 COMMIT;