pgsql: Fix failure when creating cloned indexes for a partition

From: Michael Paquier <michael(at)paquier(dot)xyz>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Fix failure when creating cloned indexes for a partition
Date: 2019-11-02 05:18:42
Message-ID: E1iQloA-0003vZ-D8@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

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

Branch
------
REL_12_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/7963c4c4b7821f286e335c8aed66821c87404ce3

Modified Files
--------------
src/backend/commands/tablecmds.c | 2 +-
src/test/regress/expected/create_table.out | 49 ++++++++++++++++++++++++++++++
src/test/regress/sql/create_table.sql | 23 ++++++++++++++
3 files changed, 73 insertions(+), 1 deletion(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2019-11-02 20:45:50 pgsql: Validate ispell dictionaries more carefully.
Previous Message Michael Paquier 2019-11-01 14:00:16 pgsql: Add some assertions in syncrep.c