Mit current_setting () auf Wert prüfen

Ich versuche mit zu arbeitencurrent_setting().

Das habe ich mir ausgedacht:

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;

Die Einstellung erfolgt über:

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

Das Problem ist, dasscurrent_setting() Löst eine Ausnahme aus, wenn der Wert ungültig ist. Ich möchte nicht verwendenEXCEPTION weil ich gelesen habe, dass Ausnahmeblöcke teuer sind.

Gibt es eine Möglichkeit zu überprüfen, ob die Einstellung einen Wert hat, ohne Ausnahmen zu verwenden?

Btw: Ich habe auch versucht, aus zu lesenpg_settings aber das scheint nicht mit lokalen Einstellungen zu funktionieren.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage