diff --git a/doc/src/sgml/ddl.sgml b/doc/src/sgml/ddl.sgml index b4648321dc..63bc946c3b 100644 --- a/doc/src/sgml/ddl.sgml +++ b/doc/src/sgml/ddl.sgml @@ -3915,18 +3915,25 @@ DROP TABLE measurement_y2006m02; Another option that is often preferable is to remove the partition from the partitioned table but retain access to it as a table in its own - right: + right. This has two forms: ALTER TABLE measurement DETACH PARTITION measurement_y2006m02; +ALTER TABLE measurement DETACH PARTITION measurement_y2006m02 CONCURRENTLY; - This allows further operations to be performed on the data before + These allow further operations to be performed on the data before it is dropped. For example, this is often a useful time to back up the data using COPY, pg_dump, or similar tools. It might also be a useful time to aggregate data into smaller formats, perform other data manipulations, or run - reports. + reports. The first form of the command requires an + ACCESS EXCLUSIVE lock on the parent table. + Adding the CONCURRENTLY qualifier as in the second + form allows the detach operation to require only + SHARE UPDATE EXCLUSIVE lock on the parent table, but see + ALTER TABLE ... DETACH PARTITION + for details on the restrictions. @@ -4163,17 +4170,6 @@ ALTER INDEX measurement_city_id_logdate_key might be poor.) - - - - Some operations require a stronger lock when using declarative - partitioning than when using table inheritance. For example, - removing a partition from a partitioned table requires taking - an ACCESS EXCLUSIVE lock on the parent table, - whereas a SHARE UPDATE EXCLUSIVE lock is enough - in the case of regular inheritance. - - diff --git a/doc/src/sgml/ref/alter_table.sgml b/doc/src/sgml/ref/alter_table.sgml index 9cef1f101e..087f640dc0 100644 --- a/doc/src/sgml/ref/alter_table.sgml +++ b/doc/src/sgml/ref/alter_table.sgml @@ -967,7 +967,7 @@ WITH ( MODULUS numeric_literal, REM - + DETACH PARTITION partition_name [ CONCURRENTLY | FINALIZE ]