Re: IMMUTABLE function's flag do not work: 7.3.4, plpgsql

From: Andriy Tkachuk <ant(at)imt(dot)com(dot)ua>
To: Gaetano Mendola <mendola(at)bigfoot(dot)com>
Cc: "pgsql-performance(at)postgresql(dot)org" <pgsql-performance(at)postgresql(dot)org>
Subject: Re: IMMUTABLE function's flag do not work: 7.3.4, plpgsql
Date: 2003-10-13 07:32:03
Message-ID: 20031013101614.A51447-100000@pool.imt.com.ua
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Oh, Gaetano, didn't you see in my first letter of this topic
that args are the same in session (they are constant)?

The first paragraf of my first letter of this topic was:
< Hi folks. I notice that immutable flag does nothing when i invoke
< my plpgsql function within one session with same args.
^^^^^^^^^^^^^^
... ok, mabe i should say "constant args" as in doc.

Anyway, thank you for attention and willing to help.

regards, andriy tkachuk (http://imt.com.ua)

On Sun, 12 Oct 2003, Gaetano Mendola wrote:

> Andriy Tkachuk wrote:
>
> > On Thu, 9 Oct 2003, Gaetano Mendola wrote:
> >>Andriy Tkachuk wrote:
> >>>On Wed, 8 Oct 2003, Tom Lane wrote:
> >>>>Andriy Tkachuk <ant(at)imt(dot)com(dot)ua> writes:
> >>>>>At second. calc_total() is immutable function:
> >>>>>but it seems that it's not cached in one session:
> >>>>
> >>>>It's not supposed to be.
> >>>
> >>>
> >>>but it's written id doc:
> >>>
> >>> IMMUTABLE indicates that the function always returns the same
> >>> result when given the same argument values; that is, it does not
> >>> do database lookups or otherwise use information not directly
> >>> present in its parameter list. If this option is given, any call
> >>> of the function with all-constant arguments can be immediately
> >>> replaced with the function value.
> >>
> >>The doc say "can be" not must and will be.
> >
> >
> > ok, but on what it depends on?
>
> For example in:
>
> select * from T where f_immutable ( 4 ) = T.id;
>
>
> in this case f_immutable will be evaluated once.
>
>
>
> select * from T where f_immutable ( T.id ) = X;
>
> here f_immutable will be avaluated for each different T.id.
>
> Regards
> Gaetano Mendola

In response to

Browse pgsql-performance by date

  From Date Subject
Next Message Andriy Tkachuk 2003-10-13 08:53:12 Re: One or more processor ?
Previous Message David Griffiths 2003-10-13 06:23:33 Re: Another weird one with an UPDATE