]> granicus.if.org Git - postgresql/commit
Fix RETURNING to work correctly with partition tuple routing.
authorRobert Haas <rhaas@postgresql.org>
Thu, 19 Jan 2017 18:20:11 +0000 (13:20 -0500)
committerRobert Haas <rhaas@postgresql.org>
Thu, 19 Jan 2017 18:20:11 +0000 (13:20 -0500)
commit05bd889904e03479a7169b1c36e0e1db13fff7cb
tree90af08c581519107dbdebe0e3815655c282e3799
parent39162b2030fb0a35a6bb28dc636b5a71b8df8d1c
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
src/backend/catalog/partition.c
src/backend/commands/tablecmds.c
src/backend/executor/execMain.c
src/backend/executor/nodeModifyTable.c
src/include/catalog/partition.h
src/test/regress/expected/insert.out
src/test/regress/sql/insert.sql