Re: Bug? Function with side effects not evaluated in CTE

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Bug? Function with side effects not evaluated in CTE
Дата
Msg-id 2651.1382381629@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: Bug? Function with side effects not evaluated in CTE  (Moshe Jacobson <moshe@neadwerx.com>)
Ответы Re: Bug? Function with side effects not evaluated in CTE  (Moshe Jacobson <moshe@neadwerx.com>)
Re: Bug? Function with side effects not evaluated in CTE  (David Johnston <polobo@yahoo.com>)
Список pgsql-general
Moshe Jacobson <moshe@neadwerx.com> writes:
> I am of the belief that if the function in a CTE is volatile, that it
> should be executed unconditionally.

[ shrug... ]  Consider

    SELECT volatile_function(i) FROM generate_series(1, 10) i LIMIT 1;

How many times should the volatile function get executed?  If your answer
is not "10", how is this different from the CTE case?  This LIMIT clause
is restricting the number of times the function executes in pretty much
the same way that our definition of CTE evaluation does, AFAICS.

You could of course argue that our definition of LIMIT is wrong too,
but that's going to raise the bar for convincing people even higher,
because of the number of existing applications that such a redefinition
would break.

            regards, tom lane


В списке pgsql-general по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: locks held during commit with synchronous replication
Следующее
От: ramistuni
Дата:
Сообщение: Re: Upgrade from 9.1 to 9.10