From cbe4caec19cabfc4696b433cd63389ff4447e335 Mon Sep 17 00:00:00 2001 From: Mike Rylander Date: Wed, 18 Jan 2017 14:38:00 -0500 Subject: [PATCH] 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 --- .../1004.function.hold-move-trigger-bug.sql | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) 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; + -- 2.43.2