pgsql: Fix incorrect index behavior in COPY FROM with partitioned table

From: David Rowley <drowley(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Fix incorrect index behavior in COPY FROM with partitioned table
Date: 2019-06-05 06:35:52
Message-ID: E1hYPWa-0006kx-T3@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Fix incorrect index behavior in COPY FROM with partitioned tables

86b85044e rewrote how COPY FROM works to allow multiple tuple buffers to
exist to once thus allowing multi-inserts to be used in more cases with
partitioned tables. That commit neglected to update the estate's
es_result_relation_info when flushing the insert buffer to the partition
making it possible for the index tuples to be added into an index on the
wrong partition.

Fix this and also add an Assert in ExecInsertIndexTuples to help ensure
that we never make this mistake again.

Reported-by: Haruka Takatsuka
Author: Ashutosh Sharma
Discussion: https://postgr.es/m/15832-b1bf336a4ee246b5@postgresql.org

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/56b3b3838284f53c83556592e60688522155f57f

Modified Files
--------------
src/backend/commands/copy.c | 3 +++
src/backend/executor/execIndexing.c | 3 +++
src/test/regress/input/copy.source | 13 +++++++++++++
src/test/regress/output/copy.source | 17 +++++++++++++++++
4 files changed, 36 insertions(+)

Browse pgsql-committers by date

  From Date Subject
Next Message Christoph Berg 2019-06-05 08:47:35 Re: UCT (Re: pgsql: Update time zone data files to tzdata release 2019a.)
Previous Message Michael Paquier 2019-06-05 06:02:03 pgsql: Rework code using list_delete_cell() in MergeAttributes