Проверьте значение с помощью current_setting ()
Я пытаюсь работать с.current_setting()
Я придумал это:
CREATE OR REPLACE FUNCTION process_audit() RETURNS TRIGGER AS $audit$
DECLARE
user_id integer;
BEGIN
BEGIN
user_id := current_setting('hws.current_user_id');
EXCEPTION WHEN OTHERS THEN
user_id := NULL;
END;
...
RETURN NULL;
END;
$audit$ LANGUAGE plpgsql;
Настройка устанавливается с помощью:
SELECT set_config('hws.current_user_id', '5', true); -- true = local setting -> only visible in current transaction
Проблема в том, чтоcurrent_setting()
выдает исключение, если значение недопустимо. Я нене хочу использоватьEXCEPTION
потому что я читал, что блоки исключений стоят дорого.
Есть ли способ проверить, имеет ли параметр значение без использования исключений?
Кстати, я также пытался читать сpg_settings
но это неКажется, что он работает с локальными настройками.