Re: Any form of connection-level "session variable" ? - Mailing list pgsql-general

From John McCawley
Subject Re: Any form of connection-level "session variable" ?
Date
Msg-id 459D6105.9090003@hardgeus.com
Whole thread Raw
In response to Re: Any form of connection-level "session variable" ?  (Erik Jones <erik@myemma.com>)
Responses Re: Any form of connection-level "session variable" ?
List pgsql-general
I tried stable, and that didn't help at all.  How long does PostgreSQL
maintain the "state" of the function when using immutable?  Until a
restart?  Until the end of a session?  Until the function is dropped and
re-added?

While this value isn't 100% absolutely positively guaranteed to never
change, it is pretty dang close.  I have a strict correlation between
the username that someone uses to login and the ID returned.  Changing
someone's username would break a whole lot more than this one app on the
project...



Erik Jones wrote:

> Tom Lane wrote:
>
>> John McCawley <nospam@hardgeus.com> writes:
>>
>>
>>> I think I got it:
>>> CREATE FUNCTION new_get_emp_id() RETURNS INTEGER AS $$ select emp_id
>>> from secureview.tbl_employee where username = (SELECT current_user)
>>> $$ LANGUAGE SQL IMMUTABLE;
>>> I made the function immutable so it only calls it once, therefore no
>>> longer requiring a call per-row.
>>>
>>
>>
>> Since it's obviously *not* immutable, this will come back to bite you
>> sooner or later (probably sooner).  Labeling it STABLE would be
>> reasonable, although I'm not certain how much that helps you.  Do you
>> have indexes on the columns it's being compared to?
>>
>
> Besides, a temp table is pretty much a session variable.
>

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: Any form of connection-level "session variable" ?
Next
From: Scott Ribe
Date:
Subject: Bug in 8.2 (&8.1) dump & restore