Re: IMMUTABLE function's flag do not work: 7.3.4, plpgsql - Mailing list pgsql-performance

From Andriy Tkachuk
Subject Re: IMMUTABLE function's flag do not work: 7.3.4, plpgsql
Date
Msg-id 20031013101614.A51447-100000@pool.imt.com.ua
Whole thread Raw
In response to Re: IMMUTABLE function's flag do not work: 7.3.4, plpgsql  (Gaetano Mendola <mendola@bigfoot.com>)
List 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@imt.com.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


pgsql-performance by date:

Previous
From: David Griffiths
Date:
Subject: Re: Another weird one with an UPDATE
Next
From: Andriy Tkachuk
Date:
Subject: Re: One or more processor ?