Re: BUG #6316: function search_path causes set_config() is_local = true to have no effect

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: BUG #6316: function search_path causes set_config() is_local = true to have no effect
Дата
Msg-id 7517.1322807234@sss.pgh.pa.us
обсуждение исходный текст
Ответ на BUG #6316: function search_path causes set_config() is_local = true to have no effect  (postgresql@thewickedtribe.net)
Ответы Re: BUG #6316: function search_path causes set_config() is_local = true to have no effect  (Jon Erdman <postgresql@thewickedtribe.net>)
Список pgsql-bugs
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

В списке pgsql-bugs по дате отправления:

Предыдущее
От: postgresql@thewickedtribe.net
Дата:
Сообщение: BUG #6316: function search_path causes set_config() is_local = true to have no effect
Следующее
От: Jon Erdman
Дата:
Сообщение: Re: BUG #6316: function search_path causes set_config() is_local = true to have no effect