From f4d5813d7d5dfe22fef69871fb2d8c2685b43ceb Mon Sep 17 00:00:00 2001 From: Mike Rylander Date: Mon, 10 Mar 2014 12:43:24 -0400 Subject: [PATCH] LP#1284864: Forcibly update deleted MR masters Query derived from one by Ben Shum, altered to take deleted-record retention configuration into account. Signed-off-by: Mike Rylander Signed-off-by: Ben Shum --- ...XXX.functions.metarecord-deleted-constituents.sql | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.functions.metarecord-deleted-constituents.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.functions.metarecord-deleted-constituents.sql index 7b98009340..ab23ff58d1 100644 --- a/Open-ILS/src/sql/Pg/upgrade/XXXX.functions.metarecord-deleted-constituents.sql +++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.functions.metarecord-deleted-constituents.sql @@ -1,3 +1,6 @@ +BEGIN; + +SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version); CREATE OR REPLACE FUNCTION metabib.remap_metarecord_for_bib( bib_id BIGINT, fp TEXT, bib_is_deleted BOOL DEFAULT FALSE, retain_deleted BOOL DEFAULT FALSE ) RETURNS BIGINT AS $func$ DECLARE @@ -341,3 +344,12 @@ BEGIN END; $F$ LANGUAGE PLPGSQL STABLE; +-- Forcibly remap deleted master records, retaining the linkage if so configured. +SELECT metabib.remap_metarecord_for_bib( bre.id, bre.fingerprint, TRUE, COALESCE(flag.enabled,FALSE)) + FROM metabib.metarecord metar + JOIN biblio.record_entry bre ON bre.id = metar.master_record, + config.internal_flag flag + WHERE bre.deleted = TRUE AND flag.name = 'ingest.metarecord_mapping.preserve_on_delete'; + +COMMIT; + -- 2.43.2