Re: function(contants) evaluated for every row
От | Robert Haas |
---|---|
Тема | Re: function(contants) evaluated for every row |
Дата | |
Msg-id | AANLkTik+K6HBc+V7cEypTUSDW0nsLW+a6XmQhtfb4ATS@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: function(contants) evaluated for every row (Bruce Momjian <bruce@momjian.us>) |
Список | pgsql-hackers |
On Thu, Mar 10, 2011 at 7:32 PM, Bruce Momjian <bruce@momjian.us> wrote: > Robert Haas wrote: >> 2010/11/25 pasman pasma?ski <pasman.p@gmail.com>: >> >>I've seen this as well be a performance issue, in particular with partitioned tables. >> >>Out of habit I now write functions that always cache the value of the function in >> >>a variable and use the variable in the actual query to avoid this particular "gotcha". >> > >> > subquery may be used to cache constants: >> > >> > SELECT a_date >> > ?FROM test >> > ?WHERE a_date=(SELECT current_date); >> > >> > >> > "Seq Scan on test1 ?(cost=0.01..10.76 rows=5 width=4)" >> > " ?Filter: (a_date = $0)" >> > " ?InitPlan 1 (returns $0)" >> > " ? ?-> ?Result ?(cost=0.00..0.01 rows=1 width=0)" >> >> Interesting. So we pull a subquery out and treat it as an initplan, >> but not a stable function? Hmm... > > I assume this is _not_ a TODO. Dunno, not sure. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
В списке pgsql-hackers по дате отправления: