diff --git a/doc/src/sgml/ddl.sgml b/doc/src/sgml/ddl.sgml
index 8616a8e9cc..66f4e193d2 100644
--- a/doc/src/sgml/ddl.sgml
+++ b/doc/src/sgml/ddl.sgml
@@ -4283,18 +4283,23 @@ 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.
+ As an alternative to creating a new partition, it is sometimes more
+ convenient to create a new table seperate from 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
+ only a SHARE UPDATE EXCLUSIVE lock on the
+ partitioned table rather than the ACCESS
+ EXCLUSIVE lock 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:
+ 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
@@ -4333,7 +4338,7 @@ ALTER TABLE measurement ATTACH PARTITION measurement_y2008m02
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
+ this is not done, the DEFAULT partition must 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
@@ -4344,18 +4349,19 @@ 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
- 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
- do not get the index applied automatically. The indexes on partitions can
- be created individually using CONCURRENTLY, and then
- attached to the index on the parent using
+ As mentioned above, it is possible to create indexes on partitioned tables
+ so that they are applied automatically to the entire hierarchy. This can
+ be very convenient as not only will all existing partitions be indexed,
+ but any future attached or created partitions will be indexed as well.
+ One limitation when creating new indexes on partitioned tables is that it
+ is 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
+ do not get the index applied automatically. Instead, the indexes can
+ then be created individually on each partition using
+ CONCURRENTLY and attached to the
+ partitioned 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
valid automatically. Example: