Bob Price <[email protected]> writes:
> If I set the COST of expensivefunc high, and label it IMMUTABLE, will the
> query executor note that the two invocations to expensivefunc have the same
> inputs so it can only call it once and re-use the result the second time?
No. There is a myth prevalent among certain wishful thinkers that
IMMUTABLE does something like that, but it doesn't. IMMUTABLE only
licenses the planner to fold a call *with constant arguments* into a
constant result, by executing the function once before the query
actually starts. Textually distinct calls of a function are not folded
together in any case.
regards, tom lane
--
Sent via pgsql-general mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general