aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor/nodeBitmapIndexscan.c
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2016-12-22 17:31:52 -0500
committerRobert Haas <rhaas@postgresql.org>2016-12-22 17:36:37 -0500
commit2ac3ef7a01df859c62d0a02333b646d65eaec5ff (patch)
tree850532b8c6aac27df50cff9c45a5873b4c0da743 /src/backend/executor/nodeBitmapIndexscan.c
parent12bd7dd317e8f4346fb3507578aca790ede6ebea (diff)
downloadpostgresql-2ac3ef7a01df859c62d0a02333b646d65eaec5ff.tar.gz
postgresql-2ac3ef7a01df859c62d0a02333b646d65eaec5ff.zip
Fix tuple routing in cases where tuple descriptors don't match.
The previous coding failed to work correctly when we have a multi-level partitioned hierarchy where tables at successive levels have different attribute numbers for the partition key attributes. To fix, have each PartitionDispatch object store a standalone TupleTableSlot initialized with the TupleDesc of the corresponding partitioned table, along with a TupleConversionMap to map tuples from the its parent's rowtype to own rowtype. After tuple routing chooses a leaf partition, we must use the leaf partition's tuple descriptor, not the root table's. To that end, a dedicated TupleTableSlot for tuple routing is now allocated in EState. Amit Langote
Diffstat (limited to 'src/backend/executor/nodeBitmapIndexscan.c')
0 files changed, 0 insertions, 0 deletions