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

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

In response to

Responses

Browse pgsql-performance by date

  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