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

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(-)