From: Bill Erickson Date: Mon, 15 May 2017 18:16:05 +0000 (-0400) Subject: LP#1170514 Stamping vandelay bib-overlay resync SQL X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=020d548c33e6ee4ce5ad1a542f6f9861b4257129;p=working%2FEvergreen.git LP#1170514 Stamping vandelay bib-overlay resync SQL Signed-off-by: Bill Erickson --- diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql index 2ef324869b..7d4393a161 100644 --- a/Open-ILS/src/sql/Pg/002.schema.config.sql +++ b/Open-ILS/src/sql/Pg/002.schema.config.sql @@ -90,7 +90,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 ('1037', :eg_version); -- jeff/dyrcona +INSERT INTO config.upgrade_log (version, applied_to) VALUES ('1038', :eg_version); -- csharp/berick CREATE TABLE config.bib_source ( id SERIAL PRIMARY KEY, diff --git a/Open-ILS/src/sql/Pg/upgrade/1038.schema.vandelay_auto_overlay_bib_record.sql b/Open-ILS/src/sql/Pg/upgrade/1038.schema.vandelay_auto_overlay_bib_record.sql new file mode 100644 index 0000000000..4d5d74da93 --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/1038.schema.vandelay_auto_overlay_bib_record.sql @@ -0,0 +1,44 @@ +BEGIN; + +SELECT evergreen.upgrade_deps_block_check('1038', :eg_version); + +-- This function was replaced back in 2011, but never made it +-- into an upgrade script. Here it is, nearly 6 years later. + +CREATE OR REPLACE FUNCTION vandelay.auto_overlay_bib_record ( import_id BIGINT, merge_profile_id INT ) RETURNS BOOL AS $$ +DECLARE + eg_id BIGINT; + match_count INT; +BEGIN + + PERFORM * FROM vandelay.queued_bib_record WHERE import_time IS NOT NULL AND id = import_id; + + IF FOUND THEN + -- RAISE NOTICE 'already imported, cannot auto-overlay' + RETURN FALSE; + END IF; + + SELECT COUNT(*) INTO match_count FROM vandelay.bib_match WHERE queued_record = import_id; + + IF match_count <> 1 THEN + -- RAISE NOTICE 'not an exact match'; + RETURN FALSE; + END IF; + + -- Check that the one match is on the first 901c + SELECT m.eg_record INTO eg_id + FROM vandelay.queued_bib_record q + JOIN vandelay.bib_match m ON (m.queued_record = q.id) + WHERE q.id = import_id + AND m.eg_record = oils_xpath_string('//*[@tag="901"]/*[@code="c"][1]',marc)::BIGINT; + + IF NOT FOUND THEN + -- RAISE NOTICE 'not a 901c match'; + RETURN FALSE; + END IF; + + RETURN vandelay.overlay_bib_record( import_id, eg_id, merge_profile_id ); +END; +$$ LANGUAGE PLPGSQL; + +COMMIT; diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.vandelay_auto_overlay_bib_record.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.vandelay_auto_overlay_bib_record.sql deleted file mode 100644 index ef1da1983d..0000000000 --- a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.vandelay_auto_overlay_bib_record.sql +++ /dev/null @@ -1,44 +0,0 @@ -BEGIN; - -SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version); - --- This function was replaced back in 2011, but never made it --- into an upgrade script. Here it is, nearly 6 years later. - -CREATE OR REPLACE FUNCTION vandelay.auto_overlay_bib_record ( import_id BIGINT, merge_profile_id INT ) RETURNS BOOL AS $$ -DECLARE - eg_id BIGINT; - match_count INT; -BEGIN - - PERFORM * FROM vandelay.queued_bib_record WHERE import_time IS NOT NULL AND id = import_id; - - IF FOUND THEN - -- RAISE NOTICE 'already imported, cannot auto-overlay' - RETURN FALSE; - END IF; - - SELECT COUNT(*) INTO match_count FROM vandelay.bib_match WHERE queued_record = import_id; - - IF match_count <> 1 THEN - -- RAISE NOTICE 'not an exact match'; - RETURN FALSE; - END IF; - - -- Check that the one match is on the first 901c - SELECT m.eg_record INTO eg_id - FROM vandelay.queued_bib_record q - JOIN vandelay.bib_match m ON (m.queued_record = q.id) - WHERE q.id = import_id - AND m.eg_record = oils_xpath_string('//*[@tag="901"]/*[@code="c"][1]',marc)::BIGINT; - - IF NOT FOUND THEN - -- RAISE NOTICE 'not a 901c match'; - RETURN FALSE; - END IF; - - RETURN vandelay.overlay_bib_record( import_id, eg_id, merge_profile_id ); -END; -$$ LANGUAGE PLPGSQL; - -COMMIT;