Проверьте значение с помощью 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 но это неКажется, что он работает с локальными настройками.

Ответы на вопрос(1)

Ваш ответ на вопрос