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


Follow ups

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 2 of 3 | next ›
Discussion Overview
grouppgsql-bugs @
postedDec 2, '11 at 6:21a
activeDec 2, '11 at 6:48a

2 users in discussion

Jon Erdman: 2 posts Tom Lane: 1 post



site design / logo © 2021 Grokbase