From bc0937675846c6eab16db3b8daee93b5cd43492f Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Thu, 22 Mar 2018 14:16:28 -0400 Subject: [PATCH] LP#1750894 Cascade settings batch retrieve func Signed-off-by: Bill Erickson --- .../upgrade/XXXX.schema.workstation-settings.sql | 16 ++++++++++++++++ .../ZZZZ.schema.workstation-settings.UNDO.sql | 1 + 2 files changed, 17 insertions(+) diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.workstation-settings.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.workstation-settings.sql index e4a68a4b93..c091320d1e 100644 --- a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.workstation-settings.sql +++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.workstation-settings.sql @@ -142,6 +142,22 @@ END; $FUNC$ LANGUAGE PLPGSQL; +CREATE OR REPLACE FUNCTION actor.get_setting_batch(setting_names TEXT[], + org_id INT, user_id INT, workstation_id INT) RETURNS SETOF JSON AS +$FUNC$ +-- Returns a row per setting matching the setting name order. If no +-- value is applied, NULL is returned to retain name-response ordering. +DECLARE + setting_name TEXT; +BEGIN + FOREACH setting_name IN ARRAY setting_names LOOP + RETURN NEXT * FROM actor.get_setting( + setting_Name, org_id, user_id, workstation_id); + END LOOP; +END; +$FUNC$ LANGUAGE PLPGSQL; + COMMIT; + diff --git a/Open-ILS/src/sql/Pg/upgrade/ZZZZ.schema.workstation-settings.UNDO.sql b/Open-ILS/src/sql/Pg/upgrade/ZZZZ.schema.workstation-settings.UNDO.sql index 6408f8db78..2340d17e82 100644 --- a/Open-ILS/src/sql/Pg/upgrade/ZZZZ.schema.workstation-settings.UNDO.sql +++ b/Open-ILS/src/sql/Pg/upgrade/ZZZZ.schema.workstation-settings.UNDO.sql @@ -1,6 +1,7 @@ BEGIN; DROP FUNCTION actor.get_setting(TEXT, INT, INT, INT); +DROP FUNCTION actor.get_setting_batch(TEXT[], INT, INT, INT); DROP TRIGGER IF EXISTS check_setting_is_usr_or_ws ON actor.workstation_setting; DROP TRIGGER IF EXISTS check_setting_is_usr_or_ws ON actor.usr_setting; -- 2.43.2