Обсуждение: [COMMITTERS] pgsql: Fix RETURNING to work correctly with partition tuple routing.

Поиск
Список
Период
Сортировка

[COMMITTERS] pgsql: Fix RETURNING to work correctly with partition tuple routing.

От
Robert Haas
Дата:
Fix RETURNING to work correctly with partition tuple routing.

In ExecInsert(), do not switch back to the root partitioned table
ResultRelInfo until after we finish ExecProcessReturning(), so that
RETURNING projection is done using the partition's descriptor.  For
the projection to work correctly, we must initialize the same for each
leaf partition during ModifyTableState initialization.

Amit Langote

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/05bd889904e03479a7169b1c36e0e1db13fff7cb

Modified Files
--------------
src/backend/catalog/partition.c        |  8 ++++---
src/backend/commands/tablecmds.c       |  1 +
src/backend/executor/execMain.c        |  4 ++--
src/backend/executor/nodeModifyTable.c | 43 +++++++++++++++++++++++++++-------
src/include/catalog/partition.h        |  3 ++-
src/test/regress/expected/insert.out   | 24 ++++++++++++++++++-
src/test/regress/sql/insert.sql        | 16 ++++++++++++-
7 files changed, 82 insertions(+), 17 deletions(-)