checking for the existence of a current_setting ? - Mailing list pgsql-sql

From Marc Mamin
Subject checking for the existence of a current_setting ?
Date
Msg-id C4DAC901169B624F933534A26ED7DF310861AE8A@JENMAIL01.ad.intershop.net
Whole thread Raw
List pgsql-sql
<div class="WordSection1"><p class="MsoNormal"> <p class="MsoNormal">Hello,<p class="MsoNormal"> <p
class="MsoNormal"><spanlang="EN-US">(Postgres 8.3)</span><p class="MsoNormal"><span lang="EN-US"> </span><p
class="MsoNormal"><spanlang="EN-US">I'm misusing the current settings at some places to store session
variables.</span><pclass="MsoNormal"><span lang="EN-US"> </span><p class="MsoNormal"><span lang="EN-US">The next
functionretrieve such a variable, or initialized it with a default value.</span><p class="MsoNormal"><span
lang="EN-US">Itis working as expected but performances are slow due to the exception block.</span><p
class="MsoNormal"><spanlang="EN-US">Is there a way to make the check more smoothly, i.e. without relying on the
exception?</span><p class="MsoNormal"><span lang="EN-US">maybe some undocumented internal function ?</span><p
class="MsoNormal"><spanlang="EN-US"> </span><p class="MsoNormal"><span lang="EN-US">many thanks,</span><p
class="MsoNormal"><spanlang="EN-US"> </span><p class="MsoNormal"><span lang="EN-US">Marc Mamin</span><p
class="MsoNormal"><spanlang="EN-US"> </span><p class="MsoNormal"><span lang="EN-US"> </span><p class="MsoNormal"><span
lang="EN-US"> </span><pclass="MsoNormal"><span lang="EN-US">CREATE OR REPLACE FUNCTION
public.var_get_check(int,text)</span><pclass="MsoNormal"><span lang="EN-US"> RETURNS text AS</span><p
class="MsoNormal"><spanlang="EN-US">$BODY$</span><p class="MsoNormal"><span lang="EN-US"> </span><p
class="MsoNormal"><spanlang="EN-US">  BEGIN</span><p class="MsoNormal"><span lang="EN-US">     return
current_setting('public.'|| $2 || pg_backend_pid());</span><p class="MsoNormal"><span lang="EN-US">  EXCEPTION when
undefined_objectthen</span><p class="MsoNormal"><span lang="EN-US">     perform set_config ('public.' || $2 ||
pg_backend_pid(),$1::text, false);</span><p class="MsoNormal"><span lang="EN-US">     return $1::text;</span><p
class="MsoNormal"><spanlang="EN-US">  END  ;</span><p class="MsoNormal"><span lang="EN-US">$BODY$</span><p
class="MsoNormal"><spanlang="EN-US">  LANGUAGE plpgsql VOLATILE</span><p class="MsoNormal"><span lang="EN-US"> 
</span>COST100;</div> 

pgsql-sql by date:

Previous
From: Pavel Stehule
Date:
Subject: Re: PLpgSQL variables persistance between several functions calls
Next
From: Susanne Ebrecht
Date:
Subject: Re: BINARY and BINARY VARYING datatypes in PostgreSQL