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

From Gaetano Mendola
Subject Re: IMMUTABLE function's flag do not work: 7.3.4, plpgsql
Date
Msg-id 3F89C798.4090402@bigfoot.com
Whole thread Raw
In response to Re: IMMUTABLE function's flag do not work: 7.3.4, plpgsql  (Andriy Tkachuk <ant@imt.com.ua>)
Responses Re: IMMUTABLE function's flag do not work: 7.3.4, plpgsql
List pgsql-performance
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: Josh Berkus
Date:
Subject: Re: [SQL] sql performance and cache
Next
From: David Griffiths
Date:
Subject: Re: Another weird one with an UPDATE