From: | Michael Paquier <michael(at)paquier(dot)xyz> |
---|---|
To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | pgsql: Block creation of partitions with open references to its parent |
Date: | 2018-11-05 02:05:15 |
Message-ID: | E1gJUGR-0000yt-P4@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
Block creation of partitions with open references to its parent
When a partition is created as part of a trigger processing, it is
possible that the partition which just gets created changes the
properties of the table the executor of the ongoing command relies on,
causing a subsequent crash. This has been found possible when for
example using a BEFORE INSERT which creates a new partition for a
partitioned table being inserted to.
Any attempt to do so is blocked when working on a partition, with
regression tests added for both CREATE TABLE PARTITION OF and ALTER
TABLE ATTACH PARTITION.
Reported-by: Dmitry Shalashov
Author: Amit Langote
Reviewed-by: Michael Paquier, Tom Lane
Discussion: https://postgr.es/m/15437-3fe01ee66bd1bae1@postgresql.org
Backpatch-through: 10
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/dc3e436b191a8f8d6f35fad952dd3dc314ccabf9
Modified Files
--------------
src/backend/commands/tablecmds.c | 8 ++++++++
src/test/regress/expected/alter_table.out | 18 ++++++++++++++++++
src/test/regress/expected/create_table.out | 16 ++++++++++++++++
src/test/regress/sql/alter_table.sql | 16 ++++++++++++++++
src/test/regress/sql/create_table.sql | 14 ++++++++++++++
5 files changed, 72 insertions(+)
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Eisentraut | 2018-11-05 14:17:55 | pgsql: Translation updates |
Previous Message | Michael Paquier | 2018-11-05 00:16:20 | pgsql: Ignore partitioned tables when processing ON COMMIT DELETE ROWS |