• Michael Paquier's avatar
    Block creation of partitions with open references to its parent · dc3e436b
    Michael Paquier authored
    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
    dc3e436b
create_table.sql 22.4 KB