cross-porting jbas-149 and jbas-228 SQL for reference
authorBill Erickson <berickxx@gmail.com>
Mon, 8 Dec 2014 17:06:27 +0000 (12:06 -0500)
committerBill Erickson <berickxx@gmail.com>
Thu, 21 Mar 2019 19:46:23 +0000 (15:46 -0400)
Signed-off-by: Bill Erickson <berickxx@gmail.com>
KCLS/sql/jbas-149/0869.schema.pre-calculate-prox-adjustment.sql [new file with mode: 0644]
KCLS/sql/jbas-149/XXXX.schema.clear_hold_copy_map.sql [new file with mode: 0644]
KCLS/sql/jbas-149/jbas-149-and-jbas-228-combined-upgrade.sql [new file with mode: 0644]
KCLS/sql/jbas-149/jbas-149-and-jbas-228-combined-upgrade.undo.sql [new file with mode: 0644]
KCLS/sql/jbas-228/XXXX.schema.fund_debit_invoice_links.sql [new file with mode: 0644]

diff --git a/KCLS/sql/jbas-149/0869.schema.pre-calculate-prox-adjustment.sql b/KCLS/sql/jbas-149/0869.schema.pre-calculate-prox-adjustment.sql
new file mode 100644 (file)
index 0000000..0e18119
--- /dev/null
@@ -0,0 +1,18 @@
+BEGIN;
+
+SELECT evergreen.upgrade_deps_block_check('0869', :eg_version);
+
+CREATE OR REPLACE FUNCTION action.hold_copy_calculated_proximity_update () RETURNS TRIGGER AS $f$
+BEGIN
+    NEW.proximity := action.hold_copy_calculated_proximity(NEW.hold,NEW.target_copy);
+    RETURN NEW;
+END;
+$f$ LANGUAGE PLPGSQL;
+
+CREATE TRIGGER hold_copy_proximity_update_tgr BEFORE INSERT OR UPDATE ON action.hold_copy_map FOR EACH ROW EXECUTE PROCEDURE action.hold_copy_calculated_proximity_update ();
+
+-- Now, cause the update we need in a HOT-friendly manner (http://pgsql.tapoueh.org/site/html/misc/hot.html)
+UPDATE action.hold_copy_map SET proximity = proximity WHERE proximity IS NULL;
+
+COMMIT;
+
diff --git a/KCLS/sql/jbas-149/XXXX.schema.clear_hold_copy_map.sql b/KCLS/sql/jbas-149/XXXX.schema.clear_hold_copy_map.sql
new file mode 100644 (file)
index 0000000..ee0191d
--- /dev/null
@@ -0,0 +1,20 @@
+BEGIN;
+
+CREATE OR REPLACE FUNCTION action.hold_request_clear_map () RETURNS TRIGGER AS $$
+BEGIN
+  DELETE FROM action.hold_copy_map WHERE hold = NEW.id;
+  RETURN NEW;
+END;
+$$ LANGUAGE PLPGSQL;
+
+CREATE TRIGGER hold_request_clear_map_tgr
+    AFTER UPDATE ON action.hold_request
+    FOR EACH ROW
+    WHEN (
+        (NEW.cancel_time IS NOT NULL AND OLD.cancel_time IS NULL)
+        OR (NEW.capture_time IS NOT NULL AND OLD.capture_time IS NULL)
+    )
+    EXECUTE PROCEDURE action.hold_request_clear_map();
+
+COMMIT;
+
diff --git a/KCLS/sql/jbas-149/jbas-149-and-jbas-228-combined-upgrade.sql b/KCLS/sql/jbas-149/jbas-149-and-jbas-228-combined-upgrade.sql
new file mode 100644 (file)
index 0000000..3721b44
--- /dev/null
@@ -0,0 +1,42 @@
+BEGIN;
+
+ALTER TABLE acq.fund_debit 
+    ADD COLUMN invoice_entry INTEGER 
+        REFERENCES acq.invoice_entry (id)
+        ON DELETE SET NULL;
+
+CREATE OR REPLACE FUNCTION action.hold_request_clear_map () RETURNS TRIGGER AS $$
+BEGIN
+  DELETE FROM action.hold_copy_map WHERE hold = NEW.id;
+  RETURN NEW;
+END;
+$$ LANGUAGE PLPGSQL;
+
+CREATE TRIGGER hold_request_clear_map_tgr
+    AFTER UPDATE ON action.hold_request
+    FOR EACH ROW
+    WHEN (
+        (NEW.cancel_time IS NOT NULL AND OLD.cancel_time IS NULL)
+        OR (NEW.capture_time IS NOT NULL AND OLD.capture_time IS NULL)
+    )
+    EXECUTE PROCEDURE action.hold_request_clear_map();
+
+CREATE OR REPLACE FUNCTION action.hold_copy_calculated_proximity_update () RETURNS TRIGGER AS $f$
+BEGIN
+    NEW.proximity := action.hold_copy_calculated_proximity(NEW.hold,NEW.target_copy);
+    RETURN NEW;
+END;
+$f$ LANGUAGE PLPGSQL;
+
+CREATE TRIGGER hold_copy_proximity_update_tgr 
+    BEFORE INSERT OR UPDATE ON action.hold_copy_map FOR EACH ROW 
+    EXECUTE PROCEDURE action.hold_copy_calculated_proximity_update ();
+
+
+COMMIT;
+
+-- Run after the main transaction so we can bring the system back up
+-- while it's running. This will take a little while...
+UPDATE action.hold_copy_map SET proximity = proximity WHERE proximity IS NULL;
+
+CREATE INDEX fund_debit_invoice_entry_idx ON acq.fund_debit (invoice_entry);
diff --git a/KCLS/sql/jbas-149/jbas-149-and-jbas-228-combined-upgrade.undo.sql b/KCLS/sql/jbas-149/jbas-149-and-jbas-228-combined-upgrade.undo.sql
new file mode 100644 (file)
index 0000000..adc0847
--- /dev/null
@@ -0,0 +1,15 @@
+BEGIN;
+
+DROP INDEX fund_debit_invoice_entry_idx;
+
+ALTER TABLE acq.fund_debit DROP COLUMN invoice_entry;
+
+DROP TRIGGER hold_request_clear_map_tgr ON action.hold_request;
+
+DROP FUNCTION action.hold_request_clear_map();
+
+DROP TRIGGER hold_copy_proximity_update_tgr ON action.hold_copy_map;
+
+DROP FUNCTION action.hold_copy_calculated_proximity_update();
+
+COMMIT;
diff --git a/KCLS/sql/jbas-228/XXXX.schema.fund_debit_invoice_links.sql b/KCLS/sql/jbas-228/XXXX.schema.fund_debit_invoice_links.sql
new file mode 100644 (file)
index 0000000..aca7918
--- /dev/null
@@ -0,0 +1,10 @@
+BEGIN;
+
+-- SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version);
+
+ALTER TABLE acq.fund_debit 
+    ADD COLUMN invoice_entry INTEGER 
+        REFERENCES acq.invoice_entry (id)
+        ON DELETE SET NULL;
+
+COMMIT;