diff --git a/doc/src/sgml/ddl.sgml b/doc/src/sgml/ddl.sgml index 8616a8e9cc..043717136c 100644 --- a/doc/src/sgml/ddl.sgml +++ b/doc/src/sgml/ddl.sgml @@ -4283,18 +4283,20 @@ CREATE TABLE measurement_y2008m02 PARTITION OF measurement TABLESPACE fasttablespace; - As an alternative, it is sometimes more convenient to create the - new table outside the partition structure, and attach it as a - partition later. This allows new data to be loaded, checked, and - transformed prior to it appearing in the partitioned table. - Moreover, the ATTACH PARTITION operation requires - only SHARE UPDATE EXCLUSIVE lock on the - partitioned table, as opposed to the ACCESS - EXCLUSIVE lock that is required by CREATE TABLE - ... PARTITION OF, so it is more friendly to concurrent - operations on the partitioned table. - The CREATE TABLE ... LIKE option is helpful - to avoid tediously repeating the parent table's definition: + As an alternative, it is sometimes more convenient to create the partition + as a standalone new table, and attach it to the partitioned table later. + This allows new data to be loaded, checked, and transformed prior to it + appearing in the partitioned table. Moreover, the ATTACH + PARTITION operation requires only SHARE UPDATE + EXCLUSIVE lock on the partitioned table, as opposed to the + ACCESS EXCLUSIVE lock that is required by + CREATE TABLE ... PARTITION OF, so it is more friendly + to concurrent operations on the partitioned table; see ALTER TABLE ... ATTACH + PARTITION for additional details. The CREATE TABLE ... + LIKE command can be helpful to avoid tediously repeating + the parent table's definition, for example: CREATE TABLE measurement_y2008m02 @@ -4345,16 +4347,14 @@ ALTER TABLE measurement ATTACH PARTITION measurement_y2008m02 As explained above, it is possible to create indexes on partitioned tables - so that they are applied automatically to the entire hierarchy. - This is very - convenient, as not only will the existing partitions become indexed, but - also any partitions that are created in the future will. One limitation is + so that they are applied automatically to the entire hierarchy. The operation of creating an index on a partitioned table also creates corresponding indexes on its partitions. Any new partition created in future also inherits the indexes on the partitioned table. + One limitation is that it's not possible to use the CONCURRENTLY qualifier when creating such a partitioned index. To avoid long lock times, it is possible to use CREATE INDEX ON ONLY - the partitioned table; such an index is marked invalid, and the partitions + the partitioned table; such an index is marked invalid and the partitions do not get the index applied automatically. The indexes on partitions can - be created individually using CONCURRENTLY, and then + then be created individually using CONCURRENTLY and attached to the index on the parent using ALTER INDEX .. ATTACH PARTITION. Once indexes for all partitions are attached to the parent index, the parent index is marked