DOH! *facepalm* Thanks Tom!

I read docs on set_config() and didn't think to check CREATE FUNCTION.
It does make sense, and now that you point it out, I do remember that
too. I didn't think to check it because this function is *not* secdef,
which is when you'd normally set a search_path on it (a dev
accidentally set it on a non-secdef function).

Thanks, and apologies for the false alarm.

/me slinks away sheepishly...
- --
Jon T Erdman (aka StuckMojo)
PostgreSQL Zealot
On 12/02/2011 12:27 AM, Tom Lane wrote:
postgresql@thewickedtribe.net writes:
So, found this in 8.3 but tested and it effects everything up to
9.1.1. If search_path on a function is set to anything, calls to
set_config() with is_local = true inside that function have no
effect.
Isn't that exactly what the CREATE FUNCTION reference page says?

The SET clause causes the specified configuration parameter to be
set to the specified value when the function is entered, and then
restored to its prior value when the function exits. SET FROM
CURRENT saves the session's current value of the parameter as the
value to be applied when the function is entered.

If a SET clause is attached to a function, then the effects of a
SET LOCAL command executed inside the function for the same
variable are restricted to the function: the configuration
parameter's prior value is still restored at function exit.
However, an ordinary SET command (without LOCAL) overrides the SET
clause, much as it would do for a previous SET LOCAL command: the
effects of such a command will persist after function exit, unless
the current transaction is rolled back.


regards, tom lane

Search Discussions

Discussion Posts

Previous

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 3 of 3 | next ›
Discussion Overview
grouppgsql-bugs @
categoriespostgresql
postedDec 2, '11 at 6:21a
activeDec 2, '11 at 6:48a
posts3
users2
websitepostgresql.org
irc#postgresql

2 users in discussion

Jon Erdman: 2 posts Tom Lane: 1 post

People

Translate

site design / logo © 2021 Grokbase