LP#778989: Stamping upgrade script for copy location trigger
authorBen Shum <bshum@biblio.org>
Tue, 11 Nov 2014 01:27:11 +0000 (20:27 -0500)
committerBen Shum <bshum@biblio.org>
Tue, 11 Nov 2014 01:31:18 +0000 (20:31 -0500)
Signed-off-by: Ben Shum <bshum@biblio.org>
Open-ILS/src/sql/Pg/002.schema.config.sql
Open-ILS/src/sql/Pg/upgrade/0896.correct_copy_location.sql [new file with mode: 0644]
Open-ILS/src/sql/Pg/upgrade/XXXX.correct_copy_location.sql [deleted file]

index 5692c40..ffe5cdb 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 ('0895', :eg_version); -- miker/csharp/bshum
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('0896', :eg_version); -- tsbere/csharp/bshum
 
 CREATE TABLE config.bib_source (
        id              SERIAL  PRIMARY KEY,
diff --git a/Open-ILS/src/sql/Pg/upgrade/0896.correct_copy_location.sql b/Open-ILS/src/sql/Pg/upgrade/0896.correct_copy_location.sql
new file mode 100644 (file)
index 0000000..a48bb88
--- /dev/null
@@ -0,0 +1,32 @@
+BEGIN;
+
+SELECT evergreen.upgrade_deps_block_check('0896', :eg_version);
+
+CREATE OR REPLACE FUNCTION asset.acp_location_fixer()
+RETURNS TRIGGER AS $$
+DECLARE
+    new_copy_location INT;
+BEGIN
+    IF (TG_OP = 'UPDATE') THEN
+        IF NEW.location = OLD.location AND NEW.call_number = OLD.call_number AND NEW.circ_lib = OLD.circ_lib THEN
+            RETURN NEW;
+        END IF;
+    END IF;
+    SELECT INTO new_copy_location acpl.id FROM asset.copy_location acpl JOIN actor.org_unit_ancestors_distance((SELECT owning_lib FROM asset.call_number WHERE id = NEW.call_number)) aouad ON acpl.owning_lib = aouad.id WHERE name = (SELECT name FROM asset.copy_location WHERE id = NEW.location) ORDER BY distance LIMIT 1;
+    IF new_copy_location IS NULL THEN
+        SELECT INTO new_copy_location acpl.id FROM asset.copy_location acpl JOIN actor.org_unit_ancestors_distance(NEW.circ_lib) aouad ON acpl.owning_lib = aouad.id WHERE name = (SELECT name FROM asset.copy_location WHERE id = NEW.location) ORDER BY distance LIMIT 1;
+    END IF;
+    IF new_copy_location IS NOT NULL THEN
+        NEW.location = new_copy_location;
+    END IF;
+    RETURN NEW;
+END;
+$$ LANGUAGE plpgsql;
+
+DROP TRIGGER IF EXISTS acp_location_fixer_trig ON asset.copy;
+
+CREATE TRIGGER acp_location_fixer_trig
+    BEFORE INSERT OR UPDATE OF location, call_number, circ_lib ON asset.copy
+    FOR EACH ROW EXECUTE PROCEDURE asset.acp_location_fixer();
+
+COMMIT;
diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.correct_copy_location.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.correct_copy_location.sql
deleted file mode 100644 (file)
index f2d4011..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-CREATE OR REPLACE FUNCTION asset.acp_location_fixer()
-RETURNS TRIGGER AS $$
-DECLARE
-    new_copy_location INT;
-BEGIN
-    IF (TG_OP = 'UPDATE') THEN
-        IF NEW.location = OLD.location AND NEW.call_number = OLD.call_number AND NEW.circ_lib = OLD.circ_lib THEN
-            RETURN NEW;
-        END IF;
-    END IF;
-    SELECT INTO new_copy_location acpl.id FROM asset.copy_location acpl JOIN actor.org_unit_ancestors_distance((SELECT owning_lib FROM asset.call_number WHERE id = NEW.call_number)) aouad ON acpl.owning_lib = aouad.id WHERE name = (SELECT name FROM asset.copy_location WHERE id = NEW.location) ORDER BY distance LIMIT 1;
-    IF new_copy_location IS NULL THEN
-        SELECT INTO new_copy_location acpl.id FROM asset.copy_location acpl JOIN actor.org_unit_ancestors_distance(NEW.circ_lib) aouad ON acpl.owning_lib = aouad.id WHERE name = (SELECT name FROM asset.copy_location WHERE id = NEW.location) ORDER BY distance LIMIT 1;
-    END IF;
-    IF new_copy_location IS NOT NULL THEN
-        NEW.location = new_copy_location;
-    END IF;
-    RETURN NEW;
-END;
-$$ LANGUAGE plpgsql;
-
-DROP TRIGGER IF EXISTS acp_location_fixer_trig ON asset.copy;
-
-CREATE TRIGGER acp_location_fixer_trig
-    BEFORE INSERT OR UPDATE OF location, call_number, circ_lib ON asset.copy
-    FOR EACH ROW EXECUTE PROCEDURE asset.acp_location_fixer();
-