[open-ils-commits] [GIT] Evergreen ILS branch master updated. 8ba7da747d48d0851c6a3a8d863c16b3ba3b8971

Evergreen Git git at git.evergreen-ils.org
Tue Jan 17 15:13:50 EST 2017


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".

The branch, master has been updated
       via  8ba7da747d48d0851c6a3a8d863c16b3ba3b8971 (commit)
       via  bdae9864b7992597a469fbbc8ef91fe7bf87b50b (commit)
      from  a724206126de81d98a2ba85210875ba2045f13b6 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 8ba7da747d48d0851c6a3a8d863c16b3ba3b8971
Author: Bill Erickson <berickxx at gmail.com>
Date:   Tue Jan 17 15:08:58 2017 -0500

    LP#1657237 Stamping rhrr mat view trigger repair
    
    Signed-off-by: Bill Erickson <berickxx at gmail.com>

diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql
index a9a4de1..1e6746a 100644
--- a/Open-ILS/src/sql/Pg/002.schema.config.sql
+++ b/Open-ILS/src/sql/Pg/002.schema.config.sql
@@ -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/XXXX.function.hold-move-trigger-bug.sql b/Open-ILS/src/sql/Pg/upgrade/1004.function.hold-move-trigger-bug.sql
similarity index 97%
rename from Open-ILS/src/sql/Pg/upgrade/XXXX.function.hold-move-trigger-bug.sql
rename to Open-ILS/src/sql/Pg/upgrade/1004.function.hold-move-trigger-bug.sql
index 9192836..1e3dfd1 100644
--- a/Open-ILS/src/sql/Pg/upgrade/XXXX.function.hold-move-trigger-bug.sql
+++ b/Open-ILS/src/sql/Pg/upgrade/1004.function.hold-move-trigger-bug.sql
@@ -1,5 +1,7 @@
 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

commit bdae9864b7992597a469fbbc8ef91fe7bf87b50b
Author: Mike Rylander <mrylander at gmail.com>
Date:   Tue Jan 17 14:46:36 2017 -0500

    LP#1657237: Properly constrain matview trigger function
    
    The function maintaining the reporter.hold_request_record table
    was performing an unconstrained update when a hold was moved.  This
    fixes that.
    
    To test:
    
    [1] Apply the patch, the perform an asset merge that would
        change the target of a hold request.  Verify that
        reporter.hold_request_record is properly update.
    
    Signed-off-by: Mike Rylander <mrylander at gmail.com>
    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
    Signed-off-by: Bill Erickson <berickxx at gmail.com>

diff --git a/Open-ILS/src/sql/Pg/reporter-schema.sql b/Open-ILS/src/sql/Pg/reporter-schema.sql
index dce3603..985ca6f 100644
--- a/Open-ILS/src/sql/Pg/reporter-schema.sql
+++ b/Open-ILS/src/sql/Pg/reporter-schema.sql
@@ -284,7 +284,7 @@ CREATE INDEX reporter_hold_request_record_bib_record_idx ON reporter.hold_reques
 
 ALTER TABLE reporter.hold_request_record ADD PRIMARY KEY USING INDEX reporter_hold_request_record_pkey_idx;
 
-CREATE FUNCTION reporter.hold_request_record_mapper () RETURNS TRIGGER AS $$
+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)
@@ -322,7 +322,8 @@ BEGIN
                         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;
+                END
+         WHERE  id = NEW.id;
     END IF;
     RETURN NEW;
 END;
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
new file mode 100644
index 0000000..9192836
--- /dev/null
+++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.function.hold-move-trigger-bug.sql
@@ -0,0 +1,49 @@
+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;
+

-----------------------------------------------------------------------

Summary of changes:
 Open-ILS/src/sql/Pg/002.schema.config.sql          |    2 +-
 Open-ILS/src/sql/Pg/reporter-schema.sql            |    5 +-
 .../1004.function.hold-move-trigger-bug.sql        |   51 ++++++++++++++++++++
 3 files changed, 55 insertions(+), 3 deletions(-)
 create mode 100644 Open-ILS/src/sql/Pg/upgrade/1004.function.hold-move-trigger-bug.sql


hooks/post-receive
-- 
Evergreen ILS


More information about the open-ils-commits mailing list