LP#1657237 Stamping rhrr mat view trigger repair
authorBill Erickson <berickxx@gmail.com>
Tue, 17 Jan 2017 20:08:58 +0000 (15:08 -0500)
committerBill Erickson <berickxx@gmail.com>
Tue, 17 Jan 2017 20:14:18 +0000 (15:14 -0500)
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Open-ILS/src/sql/Pg/002.schema.config.sql
Open-ILS/src/sql/Pg/upgrade/1004.function.hold-move-trigger-bug.sql [new file with mode: 0644]
Open-ILS/src/sql/Pg/upgrade/XXXX.function.hold-move-trigger-bug.sql [deleted file]

index a9a4de1..1e6746a 100644 (file)
@@ -91,7 +91,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 ('1003', :eg_version); -- gmcharlt/rhamby/csharp
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('1004', :eg_version); -- miker/gmcharlt/berick
 
 CREATE TABLE config.bib_source (
        id              SERIAL  PRIMARY KEY,
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
new file mode 100644 (file)
index 0000000..1e3dfd1
--- /dev/null
@@ -0,0 +1,51 @@
+BEGIN;
+
+SELECT evergreen.upgrade_deps_block_check('1004', :eg_version); 
+
+CREATE OR REPLACE FUNCTION reporter.hold_request_record_mapper () RETURNS TRIGGER AS $$
+BEGIN
+    IF TG_OP = 'INSERT' THEN
+        INSERT INTO reporter.hold_request_record (id, target, hold_type, bib_record)
+        SELECT  NEW.id,
+                NEW.target,
+                NEW.hold_type,
+                CASE
+                    WHEN NEW.hold_type = 'T'
+                        THEN NEW.target
+                    WHEN NEW.hold_type = 'I'
+                        THEN (SELECT ssub.record_entry FROM serial.subscription ssub JOIN serial.issuance si ON (si.subscription = ssub.id) WHERE si.id = NEW.target)
+                    WHEN NEW.hold_type = 'V'
+                        THEN (SELECT cn.record FROM asset.call_number cn WHERE cn.id = NEW.target)
+                    WHEN NEW.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 = NEW.target)
+                    WHEN NEW.hold_type = 'M'
+                        THEN (SELECT mr.master_record FROM metabib.metarecord mr WHERE mr.id = NEW.target)
+                    WHEN NEW.hold_type = 'P'
+                        THEN (SELECT bmp.record FROM biblio.monograph_part bmp WHERE bmp.id = NEW.target)
+                END AS bib_record;
+    ELSIF TG_OP = 'UPDATE' AND (OLD.target <> NEW.target OR OLD.hold_type <> NEW.hold_type) THEN
+        UPDATE  reporter.hold_request_record
+          SET   target = NEW.target,
+                hold_type = NEW.hold_type,
+                bib_record = CASE
+                    WHEN NEW.hold_type = 'T'
+                        THEN NEW.target
+                    WHEN NEW.hold_type = 'I'
+                        THEN (SELECT ssub.record_entry FROM serial.subscription ssub JOIN serial.issuance si ON (si.subscription = ssub.id) WHERE si.id = NEW.target)
+                    WHEN NEW.hold_type = 'V'
+                        THEN (SELECT cn.record FROM asset.call_number cn WHERE cn.id = NEW.target)
+                    WHEN NEW.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 = NEW.target)
+                    WHEN NEW.hold_type = 'M'
+                        THEN (SELECT mr.master_record FROM metabib.metarecord mr WHERE mr.id = NEW.target)
+                    WHEN NEW.hold_type = 'P'
+                        THEN (SELECT bmp.record FROM biblio.monograph_part bmp WHERE bmp.id = NEW.target)
+                END
+         WHERE  id = NEW.id;
+    END IF;
+    RETURN NEW;
+END;
+$$ LANGUAGE PLPGSQL;
+
+COMMIT;
+
diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.function.hold-move-trigger-bug.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.function.hold-move-trigger-bug.sql
deleted file mode 100644 (file)
index 9192836..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-BEGIN;
-
-CREATE OR REPLACE FUNCTION reporter.hold_request_record_mapper () RETURNS TRIGGER AS $$
-BEGIN
-    IF TG_OP = 'INSERT' THEN
-        INSERT INTO reporter.hold_request_record (id, target, hold_type, bib_record)
-        SELECT  NEW.id,
-                NEW.target,
-                NEW.hold_type,
-                CASE
-                    WHEN NEW.hold_type = 'T'
-                        THEN NEW.target
-                    WHEN NEW.hold_type = 'I'
-                        THEN (SELECT ssub.record_entry FROM serial.subscription ssub JOIN serial.issuance si ON (si.subscription = ssub.id) WHERE si.id = NEW.target)
-                    WHEN NEW.hold_type = 'V'
-                        THEN (SELECT cn.record FROM asset.call_number cn WHERE cn.id = NEW.target)
-                    WHEN NEW.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 = NEW.target)
-                    WHEN NEW.hold_type = 'M'
-                        THEN (SELECT mr.master_record FROM metabib.metarecord mr WHERE mr.id = NEW.target)
-                    WHEN NEW.hold_type = 'P'
-                        THEN (SELECT bmp.record FROM biblio.monograph_part bmp WHERE bmp.id = NEW.target)
-                END AS bib_record;
-    ELSIF TG_OP = 'UPDATE' AND (OLD.target <> NEW.target OR OLD.hold_type <> NEW.hold_type) THEN
-        UPDATE  reporter.hold_request_record
-          SET   target = NEW.target,
-                hold_type = NEW.hold_type,
-                bib_record = CASE
-                    WHEN NEW.hold_type = 'T'
-                        THEN NEW.target
-                    WHEN NEW.hold_type = 'I'
-                        THEN (SELECT ssub.record_entry FROM serial.subscription ssub JOIN serial.issuance si ON (si.subscription = ssub.id) WHERE si.id = NEW.target)
-                    WHEN NEW.hold_type = 'V'
-                        THEN (SELECT cn.record FROM asset.call_number cn WHERE cn.id = NEW.target)
-                    WHEN NEW.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 = NEW.target)
-                    WHEN NEW.hold_type = 'M'
-                        THEN (SELECT mr.master_record FROM metabib.metarecord mr WHERE mr.id = NEW.target)
-                    WHEN NEW.hold_type = 'P'
-                        THEN (SELECT bmp.record FROM biblio.monograph_part bmp WHERE bmp.id = NEW.target)
-                END
-         WHERE  id = NEW.id;
-    END IF;
-    RETURN NEW;
-END;
-$$ LANGUAGE PLPGSQL;
-
-COMMIT;
-