JBAS-1741 Hold targeter v2 SQL updates
authorBill Erickson <berickxx@gmail.com>
Fri, 10 Mar 2017 16:59:26 +0000 (11:59 -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/schema/deploy/hold-targeter-v2.sql [new file with mode: 0644]
KCLS/sql/schema/revert/hold-targeter-v2.sql [new file with mode: 0644]
KCLS/sql/schema/sqitch.plan
KCLS/sql/schema/verify/hold-targeter-v2.sql [new file with mode: 0644]

diff --git a/KCLS/sql/schema/deploy/hold-targeter-v2.sql b/KCLS/sql/schema/deploy/hold-targeter-v2.sql
new file mode 100644 (file)
index 0000000..f124cb6
--- /dev/null
@@ -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 (file)
index 0000000..e711978
--- /dev/null
@@ -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;
index 7e9ff35..5c3f89e 100644 (file)
@@ -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 <berickxx@gmail.com> # Back-porting LP#1527342: Patron reading history
 aged-circs-api [patron-co-history-stage-2] 2016-08-25T14:14:36Z Bill Erickson <berickxx@gmail.com> # Aged circs API access
 patron-merge-co-history [aged-circs-api] 2017-08-23T19:49:03Z Bill Erickson,,, <berick@kcls-dev-local> # Carry circ history when merging patrons
+hold-targeter-v2 [2.7-to-2.9-upgrade-part-2] 2017-03-10T16:53:06Z Bill Erickson <berickxx@gmail.com> # 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 (file)
index 0000000..e841b83
--- /dev/null
@@ -0,0 +1,7 @@
+-- Verify kcls-evergreen:hold-targeter-v2 on pg
+
+BEGIN;
+
+-- XXX Add verifications here.
+
+ROLLBACK;