Tom Lane wrote:
> Gaetano Mendola <mendola@bigfoot.com> writes:
>> [ 8.2 evaluates volatile functions in the targetlist of a view ]
>> If I mark the function as STABLE or IMMUTABLE then even with version
>> 8.2 the function is not evaluated. Is this the intended behavior?
>
> Yes; people complained that we needed to be more careful about the
> number of times volatile functions get evaluated.
I suspect that functions are evaluated also for record discarded due to
joins. Is that the case?
Like:
SELECT * FROM ta JOIN tb USING (id) where tb.foo = 4;
If ta is a view with some calculated fields are the function on ta
evaluated only for record matching the filters or in some case (
like a full scan on ta ) also for the records discarded due to the join?
Regards
Gaetano Mendola