From: Bill Erickson Date: Mon, 8 Dec 2014 17:06:27 +0000 (-0500) Subject: cross-porting jbas-149 and jbas-228 SQL for reference X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=039f0a828a53409e58b84148666e4b06c30d057f;p=working%2FEvergreen.git cross-porting jbas-149 and jbas-228 SQL for reference Signed-off-by: Bill Erickson --- 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 index 0000000000..0e18119d75 --- /dev/null +++ b/KCLS/sql/jbas-149/0869.schema.pre-calculate-prox-adjustment.sql @@ -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 index 0000000000..ee0191df66 --- /dev/null +++ b/KCLS/sql/jbas-149/XXXX.schema.clear_hold_copy_map.sql @@ -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 index 0000000000..3721b44218 --- /dev/null +++ b/KCLS/sql/jbas-149/jbas-149-and-jbas-228-combined-upgrade.sql @@ -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 index 0000000000..adc0847eb9 --- /dev/null +++ b/KCLS/sql/jbas-149/jbas-149-and-jbas-228-combined-upgrade.undo.sql @@ -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 index 0000000000..aca7918dbb --- /dev/null +++ b/KCLS/sql/jbas-228/XXXX.schema.fund_debit_invoice_links.sql @@ -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;