diff --git a/doc/src/sgml/ddl.sgml b/doc/src/sgml/ddl.sgml
index 605027e8535..dc978fbd7b3 100644
--- a/doc/src/sgml/ddl.sgml
+++ b/doc/src/sgml/ddl.sgml
@@ -3968,6 +3968,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
@@ -3976,10 +3981,27 @@ 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.
+ holding an ACCESS EXCLUSIVE lock on that partition.
It is recommended to drop the now-redundant CHECK
- constraint after ATTACH PARTITION is finished.
+ constraint after the ATTACH PARTITION is complete. If
+ the table being attached is itself a partitioned table then each of its
+ sub-partitions will be recursively locked and scanned until either a
+ suitable CHECK constraint is encountered or the leaf
+ partitions are reached.
+
+
+
+ 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. If the DEFAULT partition
+ is itself a partitioned table then each of its partitions will be
+ recursively checked in the same way as the table being attached, as
+ mentioned above.
diff --git a/doc/src/sgml/ref/alter_table.sgml b/doc/src/sgml/ref/alter_table.sgml
index 68ef3e9b4f3..beae516f3d1 100644
--- a/doc/src/sgml/ref/alter_table.sgml
+++ b/doc/src/sgml/ref/alter_table.sgml
@@ -934,8 +934,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 on 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
+ .