Re: BUG #6360: with hold cursor, cause function executed twice and wrong results

Поиск
Список
Период
Сортировка
Искать
От
Tom Lane
Тема
Re: BUG #6360: with hold cursor, cause function executed twice and wrong results
Дата
Msg-id
11717.1325008040@sss.pgh.pa.us
Ответ на
Список
Дерево обсуждения
BUG #6360: with hold cursor, cause function executed twice and wrong results wcting163@163.com
Re: BUG #6360: with hold cursor, cause function executed twice and wrong results Tom Lane <tgl@sss.pgh.pa.us>
Re: BUG #6360: with hold cursor, cause function executed twice and wrong results wcting163 <wcting163@163.com>
Re: BUG #6360: with hold cursor, cause function executed twice and wrong results Robert Haas <robertmhaas@gmail.com>
wcting163@163.com writes:
> The reason is that the function p_test_execute is executed twice, when
> *fetch*, it is first executed, and when transaction commit, because the
> cursor is a *holdable* cursor, it is executed again.

Yup.  I don't particularly see this as a bug.  If you were to manually
rewind and rescan the cursor (ie, MOVE BACKWARD ALL and re-fetch),
the function would be executed multiple times too.  If you don't want
that to happen, the best way would be to commit the transaction
immediately, not fetch some rows and then commit.

			regards, tom lane
В списке pgsql-bugs по дате отправления
От: Phil Sorber
Дата:
От: Tom Lane
Дата:
FAQ