From: Jason Boyer <jboyer@library.in.gov> Date: Wed, 8 May 2019 14:43:02 +0000 (-0400) Subject: Stamping upgrade script for Vandelay on PG10 X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=296bf51baf2e2b6e74f9ae09156c876fa01d0859;p=evergreen%2Fjoelewis.git Stamping upgrade script for Vandelay on PG10 Signed-off-by: Jason Boyer <jboyer@library.in.gov> --- diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql index 7abca1e773..93f7ea78e1 100644 --- a/Open-ILS/src/sql/Pg/002.schema.config.sql +++ b/Open-ILS/src/sql/Pg/002.schema.config.sql @@ -92,7 +92,7 @@ CREATE TRIGGER no_overlapping_deps BEFORE INSERT OR UPDATE ON config.db_patch_dependencies FOR EACH ROW EXECUTE PROCEDURE evergreen.array_overlap_check ('deprecates'); -INSERT INTO config.upgrade_log (version, applied_to) VALUES ('1162', :eg_version); -- berick/Bmagic +INSERT INTO config.upgrade_log (version, applied_to) VALUES ('1163', :eg_version); -- JBoyer/Dyrcona/bshum/JBoyer CREATE TABLE config.bib_source ( id SERIAL PRIMARY KEY, diff --git a/Open-ILS/src/sql/Pg/upgrade/1163.schema.lp1820339-pg10-vandelay.sql b/Open-ILS/src/sql/Pg/upgrade/1163.schema.lp1820339-pg10-vandelay.sql new file mode 100644 index 0000000000..d9dd6e3392 --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/1163.schema.lp1820339-pg10-vandelay.sql @@ -0,0 +1,34 @@ +BEGIN; + +SELECT evergreen.upgrade_deps_block_check('1163', :eg_version); -- JBoyer/Dyrcona/bshum/JBoyer + +CREATE OR REPLACE FUNCTION vandelay.flatten_marc_hstore( + record_xml TEXT +) RETURNS HSTORE AS $func$ +BEGIN + RETURN (SELECT + HSTORE( + ARRAY_AGG(tag || (COALESCE(subfield, ''))), + ARRAY_AGG(value) + ) + FROM ( + SELECT tag, subfield, ARRAY_AGG(value)::TEXT AS value + FROM (SELECT tag, + subfield, + CASE WHEN tag = '020' THEN -- caseless -- isbn + LOWER((SELECT REGEXP_MATCHES(value,$$^(\S{10,17})$$))[1] || '%') + WHEN tag = '022' THEN -- caseless -- issn + LOWER((SELECT REGEXP_MATCHES(value,$$^(\S{4}[- ]?\S{4})$$))[1] || '%') + WHEN tag = '024' THEN -- caseless -- upc (other) + LOWER(value || '%') + ELSE + value + END AS value + FROM vandelay.flatten_marc(record_xml)) x + GROUP BY tag, subfield ORDER BY tag, subfield + ) subquery + ); +END; +$func$ LANGUAGE PLPGSQL; + +COMMIT; diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.lp1820339-pg10-vandelay.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.lp1820339-pg10-vandelay.sql deleted file mode 100644 index 86b18ea664..0000000000 --- a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.lp1820339-pg10-vandelay.sql +++ /dev/null @@ -1,34 +0,0 @@ -BEGIN; - -SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version); - -CREATE OR REPLACE FUNCTION vandelay.flatten_marc_hstore( - record_xml TEXT -) RETURNS HSTORE AS $func$ -BEGIN - RETURN (SELECT - HSTORE( - ARRAY_AGG(tag || (COALESCE(subfield, ''))), - ARRAY_AGG(value) - ) - FROM ( - SELECT tag, subfield, ARRAY_AGG(value)::TEXT AS value - FROM (SELECT tag, - subfield, - CASE WHEN tag = '020' THEN -- caseless -- isbn - LOWER((SELECT REGEXP_MATCHES(value,$$^(\S{10,17})$$))[1] || '%') - WHEN tag = '022' THEN -- caseless -- issn - LOWER((SELECT REGEXP_MATCHES(value,$$^(\S{4}[- ]?\S{4})$$))[1] || '%') - WHEN tag = '024' THEN -- caseless -- upc (other) - LOWER(value || '%') - ELSE - value - END AS value - FROM vandelay.flatten_marc(record_xml)) x - GROUP BY tag, subfield ORDER BY tag, subfield - ) subquery - ); -END; -$func$ LANGUAGE PLPGSQL; - -COMMIT;