From: Mike Rylander Date: Wed, 18 Jan 2017 19:38:00 +0000 (-0500) Subject: LP#1657237: Rewrite the hold target cache X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=ad80f096534d525e08e55408992c33b0ed563bde;p=working%2FEvergreen.git LP#1657237: Rewrite the hold target cache We fixed the trigger that caused the problem in bug 167237, but now we need to rewrite reporter.hold_request_record because T-holds are probably all wrong. No data was lost, we're just addressing the contents of a materialized view. Signed-off-by: Mike Rylander Signed-off-by: Jason Boyer --- diff --git a/Open-ILS/src/sql/Pg/upgrade/1004.function.hold-move-trigger-bug.sql b/Open-ILS/src/sql/Pg/upgrade/1004.function.hold-move-trigger-bug.sql index 1e3dfd11ef..5a773af11e 100644 --- a/Open-ILS/src/sql/Pg/upgrade/1004.function.hold-move-trigger-bug.sql +++ b/Open-ILS/src/sql/Pg/upgrade/1004.function.hold-move-trigger-bug.sql @@ -47,5 +47,31 @@ BEGIN END; $$ LANGUAGE PLPGSQL; +TRUNCATE TABLE reporter.hold_request_record; + +INSERT INTO reporter.hold_request_record +SELECT id, + target, + hold_type, + CASE + WHEN hold_type = 'T' + THEN target + WHEN hold_type = 'I' + THEN (SELECT ssub.record_entry FROM serial.subscription ssub JOIN serial.issuance si ON (si.subscription = ssub.id) WHERE si.id = ahr.target) + WHEN hold_type = 'V' + THEN (SELECT cn.record FROM asset.call_number cn WHERE cn.id = ahr.target) + WHEN hold_type IN ('C','R','F') + THEN (SELECT cn.record FROM asset.call_number cn JOIN asset.copy cp ON (cn.id = cp.call_number) WHERE cp.id = ahr.target) + WHEN hold_type = 'M' + THEN (SELECT mr.master_record FROM metabib.metarecord mr WHERE mr.id = ahr.target) + WHEN hold_type = 'P' + THEN (SELECT bmp.record FROM biblio.monograph_part bmp WHERE bmp.id = ahr.target) + END AS bib_record + FROM action.hold_request ahr; + +REINDEX TABLE reporter.hold_request_record; + COMMIT; +ANALYZE reporter.hold_request_record; +