diff --git a/doc/src/sgml/ddl.sgml b/doc/src/sgml/ddl.sgml index 498654876f..c4aaf906c7 100644 --- a/doc/src/sgml/ddl.sgml +++ b/doc/src/sgml/ddl.sgml @@ -3970,6 +3970,11 @@ ALTER TABLE measurement ATTACH PARTITION measurement_y2008m02 + + The ATTACH PARTITION command requires taking a + SHARE UPDATE EXCLUSIVE lock on the partitioned table. + + Before running the ATTACH PARTITION command, it is recommended to create a CHECK constraint on the table to @@ -3978,10 +3983,21 @@ ALTER TABLE measurement ATTACH PARTITION measurement_y2008m02 which is otherwise needed to validate the implicit partition constraint. Without the CHECK constraint, the table will be scanned to validate the partition constraint while - holding both an ACCESS EXCLUSIVE lock on that partition - and a SHARE UPDATE EXCLUSIVE lock on the parent table. - It is recommended to drop the now-redundant CHECK - constraint after ATTACH PARTITION is finished. + holding an ACCESS EXCLUSIVE lock on that partition + and all of its child partitions, if any. It is recommended to drop the + now-redundant CHECK constraint after the + ATTACH PARTITION is complete. + + + + Similarly, if the partitioned table has a DEFAULT + partition, it is recommended to create a CHECK + constraint which excludes the to-be-attached partition's constraint. If + this is not done then the DEFAULT partition will be + scanned to verify that it contains no records which should be located in + the partition being attached. This operation will be performed whilst + holding an ACCESS EXCLUSIVE lock on the + DEFAULT partition and all of its sub-partitions, if any. diff --git a/doc/src/sgml/ref/alter_table.sgml b/doc/src/sgml/ref/alter_table.sgml index c5e5e84e06..281d26fe27 100644 --- a/doc/src/sgml/ref/alter_table.sgml +++ b/doc/src/sgml/ref/alter_table.sgml @@ -965,8 +965,17 @@ WITH ( MODULUS numeric_literal, REM Attaching a partition acquires a SHARE UPDATE EXCLUSIVE lock on the parent table, - in addition to ACCESS EXCLUSIVE locks on the table - to be attached and on the default partition (if any). + in addition to the ACCESS EXCLUSIVE locks on the table + being attached and the default partition (if any). + + + + Further locks must also be held on all sub-partitions if the table being + attached is itself a partitioned table. Likewise if the default + partition is itself a partitioned table. The locking of the + sub-partitions can be avoided by adding a CHECK + constraint as described in + .