pgsql: Fix handling of data-modifying CTE subplans in EvalPlanQual.

Поиск
Список
Период
Сортировка
От Tom Lane
Тема pgsql: Fix handling of data-modifying CTE subplans in EvalPlanQual.
Дата
Msg-id E1RrHBC-0005wk-CI@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Fix handling of data-modifying CTE subplans in EvalPlanQual.

We can't just skip initializing such subplans, because the referencing CTE
node will expect to find the subplan available when it initializes.  That
in turn means that ExecInitModifyTable must allow the case (which actually
it needed to do anyway, since there's no guarantee that ModifyTable is
exactly at the top of the CTE plan tree).  So move the complaint about not
being allowed in EvalPlanQual mode to execution instead of initialization.
Testing turned up yet another problem, which is that we'd try to
re-initialize the result relation's index list, leading to leaks and
dangling pointers.

Per report from Phil Sorber.  Back-patch to 9.1 where data-modifying CTEs
were introduced.

Branch
------
REL9_1_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/0b1e1779533081f9d48c110a5e91ba122fc54461

Modified Files
--------------
src/backend/executor/execMain.c        |   13 ++-----------
src/backend/executor/nodeModifyTable.c |   26 +++++++++++++++++---------
2 files changed, 19 insertions(+), 20 deletions(-)


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

Предыдущее
От: Magnus Hagander
Дата:
Сообщение: pgsql: Prevent logging "failed to stat file: success" for temp files
Следующее
От: Tom Lane
Дата:
Сообщение: pgsql: Fix handling of data-modifying CTE subplans in EvalPlanQual.