Fix failure when creating cloned indexes for a partition
authorMichael Paquier <michael@paquier.xyz>
Sat, 2 Nov 2019 05:16:11 +0000 (14:16 +0900)
committerMichael Paquier <michael@paquier.xyz>
Sat, 2 Nov 2019 05:16:11 +0000 (14:16 +0900)
commit7963c4c4b7821f286e335c8aed66821c87404ce3
tree52a80ebd6c9f7c9f3d444f3ca0a53c8e474adfdb
parent7b8c2de64e66659115c1e4075c025d6392d659ef
Fix failure when creating cloned indexes for a partition

When using CREATE TABLE for a new partition, the partitioned indexes of
the parent are created automatically in a fashion similar to LIKE
INDEXES.  The new partition and its parent use a mapping for attribute
numbers for this operation, and while the mapping was correctly built,
its length was defined as the number of attributes of the newly-created
child, and not the parent.  If the parent includes dropped columns, this
could cause failures.

This is wrong since 8b08f7d which has introduced the concept of
partitioned indexes, so backpatch down to 11.

Reported-by: Wyatt Alt
Author: Michael Paquier
Reviewed-by: Amit Langote
Discussion: https://postgr.es/m/CAGem3qCcRmhbs4jYMkenYNfP2kEusDXvTfw-q+eOhM0zTceG-g@mail.gmail.com
Backpatch-through: 11
src/backend/commands/tablecmds.c
src/test/regress/expected/create_table.out
src/test/regress/sql/create_table.sql