Re: BUG #6517: Volatile function erroneously optimized, does not consider change in schema path

Поиск
Список
Период
Сортировка
От Rene van Paassen
Тема Re: BUG #6517: Volatile function erroneously optimized, does not consider change in schema path
Дата
Msg-id CAOVCA=vOBdYav8xBYF0-2t80wPy4M9RpYFRGvcBxuh-VpVuXzQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: BUG #6517: Volatile function erroneously optimized, does not consider change in schema path  (Robert Haas <robertmhaas@gmail.com>)
Список pgsql-bugs
On 12 March 2012 16:32, Robert Haas <robertmhaas@gmail.com> wrote:

> On Mon, Mar 12, 2012 at 11:16 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> > Robert Haas <robertmhaas@gmail.com> writes:
> >> On Mon, Mar 5, 2012 at 6:52 AM,  <rene.vanpaassen@gmail.com> wrote:
> >>> I found some unexpected behaviour when changing the schema search path
> in
> >>> combination with plpgsql functions (may be true for other function
> types
> >>> too, did not check). This occurs both in 9.1.2 (on Fedora, 64 bit) and
> 8.4.9
> >>> (Centos 6, 32 bit). I created a small example run with psql, to
> demonstrate
> >>> this.
> >
> >> I have a vague feeling this is a known issue.  It sure seems like we
> >> should handle it better, but I'm not sure how hard that would be to
> >> implement.
> >
> > plpgsql intentionally caches the plan for the query as it was built with
> > the original search_path.  There's been talk of adjusting that behavior
> > but I'm worried that we might break as many cases as we fix ...
>
> IMHO, the problem with the current behavior is that it's neither all
> one thing nor all the other.  Using the definition-time search_path
> seems defensible, and using the run-time search_path does, too.  But
> we're not consistently doing either one, which doesn't seem good.
>
>
Isn't this what the VOLATILE, STABLE and IMMUTABLE keywords should be for?
I don't like the current behaviour, because now VOLATILE is not volatile,
unless you close and re-open the database connection. There should at least
be a big fat warning about combining functions with changing search path
somewhere in the documentation.

Implementation-wise (but I have to admit I don't know the underlying code
at all), would it be possible to cache with the search_path as an index?


> --
> Robert Haas
> EnterpriseDB: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>



--=20
Ren=E9 van Paassen <Rene.vanPaassen@gmail.com>

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

Предыдущее
От: nehxby@gmail.com
Дата:
Сообщение: BUG #6529: Invalid numeric input syntax for 'select into' queries
Следующее
От: Rene van Paassen
Дата:
Сообщение: Re: BUG #6517: Volatile function erroneously optimized, does not consider change in schema path