From 3ae1e57d4c1a4140e285f887113b8f6e9d6f969b Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Fri, 10 Mar 2017 11:59:26 -0500 Subject: [PATCH] JBAS-1741 Hold targeter v2 SQL updates Signed-off-by: Bill Erickson --- KCLS/sql/schema/deploy/hold-targeter-v2.sql | 53 +++++++++++++++++++++++++++++ KCLS/sql/schema/revert/hold-targeter-v2.sql | 13 +++++++ KCLS/sql/schema/sqitch.plan | 1 + KCLS/sql/schema/verify/hold-targeter-v2.sql | 7 ++++ 4 files changed, 74 insertions(+) create mode 100644 KCLS/sql/schema/deploy/hold-targeter-v2.sql create mode 100644 KCLS/sql/schema/revert/hold-targeter-v2.sql create mode 100644 KCLS/sql/schema/verify/hold-targeter-v2.sql diff --git a/KCLS/sql/schema/deploy/hold-targeter-v2.sql b/KCLS/sql/schema/deploy/hold-targeter-v2.sql new file mode 100644 index 0000000000..f124cb6a08 --- /dev/null +++ b/KCLS/sql/schema/deploy/hold-targeter-v2.sql @@ -0,0 +1,53 @@ +-- Deploy kcls-evergreen:hold-targeter-v2 to pg +-- requires: 2.7-to-2.9-upgrade-part-2 + +BEGIN; + +\set eg_version '''2.9.8''' + +SELECT evergreen.upgrade_deps_block_check('1019', :eg_version); + +CREATE OR REPLACE FUNCTION + action.hold_request_regen_copy_maps( + hold_id INTEGER, copy_ids INTEGER[]) RETURNS VOID AS $$ + DELETE FROM action.hold_copy_map WHERE hold = $1; + INSERT INTO action.hold_copy_map (hold, target_copy) SELECT $1, UNNEST($2); +$$ LANGUAGE SQL; + +-- DATA + +INSERT INTO config.global_flag (name, label, value, enabled) VALUES ( + 'circ.holds.retarget_interval', + oils_i18n_gettext( + 'circ.holds.retarget_interval', + 'Holds Retarget Interval', + 'cgf', + 'label' + ), + '24h', + TRUE +); + +SELECT evergreen.upgrade_deps_block_check('1020', :eg_version); + +CREATE OR REPLACE FUNCTION actor.org_unit_ancestor_setting_batch_by_org( + setting_name TEXT, org_ids INTEGER[]) + RETURNS SETOF actor.org_unit_setting AS +$FUNK$ +DECLARE + setting RECORD; + org_id INTEGER; +BEGIN + /* Returns one actor.org_unit_setting row per org unit ID provided. + When no setting exists for a given org unit, the setting row + will contain all empty values. */ + FOREACH org_id IN ARRAY org_ids LOOP + SELECT INTO setting * FROM + actor.org_unit_ancestor_setting(setting_name, org_id); + RETURN NEXT setting; + END LOOP; + RETURN; +END; +$FUNK$ LANGUAGE plpgsql STABLE; + +COMMIT; diff --git a/KCLS/sql/schema/revert/hold-targeter-v2.sql b/KCLS/sql/schema/revert/hold-targeter-v2.sql new file mode 100644 index 0000000000..e711978559 --- /dev/null +++ b/KCLS/sql/schema/revert/hold-targeter-v2.sql @@ -0,0 +1,13 @@ +-- Revert kcls-evergreen:hold-targeter-v2 from pg + +BEGIN; + +DROP FUNCTION actor.org_unit_ancestor_setting_batch_by_org(TEXT, INTEGER[]); + +DELETE FROM config.global_flag WHERE name = 'circ.holds.retarget_interval'; + +DROP FUNCTION action.hold_request_regen_copy_maps(INTEGER, INTEGER[]); + +DELETE FROM config.upgrade_log WHERE version IN ('1019', '1020'); + +COMMIT; diff --git a/KCLS/sql/schema/sqitch.plan b/KCLS/sql/schema/sqitch.plan index 7e9ff35e63..5c3f89ec6c 100644 --- a/KCLS/sql/schema/sqitch.plan +++ b/KCLS/sql/schema/sqitch.plan @@ -48,3 +48,4 @@ revert-custom-hold-counts [backstage-exports-continued] 2017-02-06T21:33:32Z Bil patron-co-history-stage-2 [sip-activity-types] 2016-05-13T18:02:48Z Bill Erickson # Back-porting LP#1527342: Patron reading history aged-circs-api [patron-co-history-stage-2] 2016-08-25T14:14:36Z Bill Erickson # Aged circs API access patron-merge-co-history [aged-circs-api] 2017-08-23T19:49:03Z Bill Erickson,,, # Carry circ history when merging patrons +hold-targeter-v2 [2.7-to-2.9-upgrade-part-2] 2017-03-10T16:53:06Z Bill Erickson # New hold targeter DB bits diff --git a/KCLS/sql/schema/verify/hold-targeter-v2.sql b/KCLS/sql/schema/verify/hold-targeter-v2.sql new file mode 100644 index 0000000000..e841b83278 --- /dev/null +++ b/KCLS/sql/schema/verify/hold-targeter-v2.sql @@ -0,0 +1,7 @@ +-- Verify kcls-evergreen:hold-targeter-v2 on pg + +BEGIN; + +-- XXX Add verifications here. + +ROLLBACK; -- 2.11.0