Block creation of partitions with open references to its parent
Michael Paquier <michael@paquier.xyz>
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
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/commands/tablecmds.c | modified | +8 −0 |
| src/test/regress/expected/alter_table.out | modified | +18 −0 |
| src/test/regress/expected/create_table.out | modified | +16 −0 |
| src/test/regress/sql/alter_table.sql | modified | +16 −0 |
| src/test/regress/sql/create_table.sql | modified | +14 −0 |
Discussion
- BUG #15437: Segfault during insert into declarative partitioned table with a trigger creating partition 22 messages · 2018-10-18 → 2018-11-06