FAQ

On 12 March 2012 16:32, Robert Haas wrote:
On Mon, Mar 12, 2012 at 11:16 AM, Tom Lane wrote:
Robert Haas <robertmhaas@gmail.com> writes:
On Mon, Mar 5, 2012 at 6:52 AM, 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


--
René van Paassen <Rene.vanPaassen@gmail.com>

Search Discussions

Discussion Posts

Previous

Follow ups

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 6 of 7 | next ›
Discussion Overview
grouppgsql-bugs @
categoriespostgresql
postedMar 5, '12 at 11:52a
activeMar 14, '12 at 8:22a
posts7
users4
websitepostgresql.org
irc#postgresql

People

Translate

site design / logo © 2022 Grokbase