On Thu, Jun 23, 2005 at 02:26:23PM +0100, Donald Fraser wrote:
>
> Is the returned value of a function defined as IMMUTABLE cached
> globally? In other words could postgresql potentially return a
> cached value obtained from one client session to a different client
> session?
You could experiment with this by adding a debugging RAISE statement
to an IMMUTABLE PL/pgSQL function to see when it's called. I suspect
there's no global caching; if there is then I haven't been able to
make it happen in tests. There doesn't even appear to be any caching
between disparate queries in the same session unless a prepared
plan is involved (e.g., a plan made with PREPARE or a cached plan
from a PL/pgSQL function) and the result of the IMMUTABLE function
could be determined at planning time.
--
Michael Fuhr
http://www.fuhr.org/~mfuhr/