From 1bd3546f862598f8ba8f27c804fd65d60a72c2b3 Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Tue, 7 Feb 2017 12:25:01 -0500 Subject: [PATCH] LP#1596595 AOUS lookup batch by org id Org unit setting value lookup for batches of org units, instead of the traditional batches by setting name. Perl live test included. Signed-off-by: Bill Erickson Signed-off-by: Chris Sharp Signed-off-by: Kathy Lussier --- .../upgrade/YYYY.schema.batch_settings_by_org.sql | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 Open-ILS/src/sql/Pg/upgrade/YYYY.schema.batch_settings_by_org.sql diff --git a/Open-ILS/src/sql/Pg/upgrade/YYYY.schema.batch_settings_by_org.sql b/Open-ILS/src/sql/Pg/upgrade/YYYY.schema.batch_settings_by_org.sql new file mode 100644 index 0000000000..567183f307 --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/YYYY.schema.batch_settings_by_org.sql @@ -0,0 +1,24 @@ +BEGIN; + +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; + -- 2.11.0