From: | Gaetano Mendola <mendola(at)bigfoot(dot)com> |
---|---|
To: | "pgsql-performance(at)postgresql(dot)org" <pgsql-performance(at)postgresql(dot)org> |
Cc: | Andriy Tkachuk <ant(at)imt(dot)com(dot)ua> |
Subject: | Re: IMMUTABLE function's flag do not work: 7.3.4, plpgsql |
Date: | 2003-10-12 21:28:56 |
Message-ID: | 3F89C798.4090402@bigfoot.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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(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
From | Date | Subject | |
---|---|---|---|
Next Message | Josh Berkus | 2003-10-12 21:31:19 | Re: [SQL] sql performance and cache |
Previous Message | Josh Berkus | 2003-10-12 20:31:42 | Re: go for a script! / ex: PostgreSQL vs. MySQL |