Verificar valor com current_setting ()

Estou tentando trabalhar comcurrent_setting().

Eu vim com isso:

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;

A configuração é definida via:

SELECT set_config('hws.current_user_id', '5', true); -- true = local setting -> only visible in current transaction

O problema é quecurrent_setting() lança uma exceção se o valor não for válido. Eu não quero usarEXCEPTION porque eu li que os blocos de exceção são caros.

Existe uma maneira de verificar se a configuração tem um valor sem usar exceções?

Btw: Eu também tentei lerpg_settings mas isso não parece funcionar com configurações locais.

questionAnswers(1)

yourAnswerToTheQuestion