DECLARE CURSOR must not contain data-modifying statements in WITH

Поиск
Список
Период
Сортировка
От Andres Freund
Тема DECLARE CURSOR must not contain data-modifying statements in WITH
Дата
Msg-id 201109211819.44027.andres@anarazel.de
обсуждение исходный текст
Ответы Re: DECLARE CURSOR must not contain data-modifying statements in WITH
Список pgsql-hackers
Hi all,

Whats the reason for disallowing cursors on wCTEs? I am not sure I can follow 
the comment:
/* * We also disallow data-modifying WITH in a cursor.  (This could be * allowed, but the semantics of when the updates
occurmight be * surprising.) */if (result->hasModifyingCTE)    ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),            errmsg("DECLARE CURSOR must not contain data-modifying 
 
statements in WITH")));

Given that cursors are about the only sensible way to return larger amounts of 
data, that behaviour reduces the usefulness of wCTEs a bit.

Whats the exact cause of concern here? I personally don't think there is a 
problem documenting that you should fetch the cursor fully before relying on 
the updated tables to be in a sensible state. But that may be just me.


Thanks,

Andres



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

Предыдущее
От: Heikki Linnakangas
Дата:
Сообщение: Re: Inlining comparators as a performance optimisation
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Inlining comparators as a performance optimisation