Re: IMMUTABLE function's flag do not work: 7.3.4, plpgsql
От | Gaetano Mendola |
---|---|
Тема | Re: IMMUTABLE function's flag do not work: 7.3.4, plpgsql |
Дата | |
Msg-id | 3F89C798.4090402@bigfoot.com обсуждение исходный текст |
Ответ на | Re: IMMUTABLE function's flag do not work: 7.3.4, plpgsql (Andriy Tkachuk <ant@imt.com.ua>) |
Ответы |
Re: IMMUTABLE function's flag do not work: 7.3.4, plpgsql
|
Список | 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 по дате отправления: