Thread: user variables in session

user variables in session

From
Igor Shevchenko
Date:
Hi All,

I wasn't able to find any functions which would allow me to save/fetch/remove
user variables local to pgsql session, e.g. -

1. select setvar('user variable name', 'user value');
2. select getvar('user variable name');
3. select delvar('user variable name');

Is there any way to do this with stock PostgreSQL, or via something in
contrib?

Would pgsql's HTAB with hash_create and hash_search be a good basis for a
simple C extension which would provide such feature ?

I found this to be quite useful in e.g. pl/pgsql triggers, for logging.

--
Best Regards,
Igor Shevchenko

Re: user variables in session

From
Merlin Moncure
Date:
On Mon, Mar 22, 2010 at 11:55 AM, Igor Shevchenko <igor@carcass.ath.cx> wrote:
> Hi All,
>
> I wasn't able to find any functions which would allow me to save/fetch/remove
> user variables local to pgsql session, e.g. -
>
> 1. select setvar('user variable name', 'user value');
> 2. select getvar('user variable name');
> 3. select delvar('user variable name');
>
> Is there any way to do this with stock PostgreSQL, or via something in
> contrib?
>
> Would pgsql's HTAB with hash_create and hash_search be a good basis for a
> simple C extension which would provide such feature ?

yes. this is trivially done and works.  another way to do it with
pl/perl...there's an example in the docs iirc.  personally, I prefer
the htab route.  It's going to come down to which dependency you want
to deal with.

merlin