diff options
-rw-r--r-- | doc/src/sgml/ddl.sgml | 13 | ||||
-rw-r--r-- | doc/src/sgml/ref/create_table.sgml | 20 |
2 files changed, 23 insertions, 10 deletions
diff --git a/doc/src/sgml/ddl.sgml b/doc/src/sgml/ddl.sgml index e49d19716c1..78f4448a5bc 100644 --- a/doc/src/sgml/ddl.sgml +++ b/doc/src/sgml/ddl.sgml @@ -3951,9 +3951,15 @@ CREATE TABLE measurement_y2008m02 PARTITION OF measurement </programlisting> As an alternative, it is sometimes more convenient to create the - new table outside the partition structure, and make it a proper + 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 <literal>ATTACH PARTITION</literal> operation requires + only <literal>SHARE UPDATE EXCLUSIVE</literal> lock on the + partitioned table, as opposed to the <literal>ACCESS + EXCLUSIVE</literal> lock that is required by <command>CREATE TABLE + ... PARTITION OF</command>, so it is more friendly to concurrent + operations on the partitioned table. The <literal>CREATE TABLE ... LIKE</literal> option is helpful to avoid tediously repeating the parent table's definition: @@ -3974,11 +3980,6 @@ ALTER TABLE measurement ATTACH PARTITION measurement_y2008m02 </para> <para> - The <command>ATTACH PARTITION</command> command requires taking a - <literal>SHARE UPDATE EXCLUSIVE</literal> lock on the partitioned table. - </para> - - <para> Before running the <command>ATTACH PARTITION</command> command, it is recommended to create a <literal>CHECK</literal> constraint on the table to be attached that matches the expected partition constraint, as diff --git a/doc/src/sgml/ref/create_table.sgml b/doc/src/sgml/ref/create_table.sgml index d6d309671bd..43127940e41 100644 --- a/doc/src/sgml/ref/create_table.sgml +++ b/doc/src/sgml/ref/create_table.sgml @@ -577,12 +577,24 @@ WITH ( MODULUS <replaceable class="parameter">numeric_literal</replaceable>, REM </para> <para> - Operations such as TRUNCATE which normally affect a table and all of its + Operations such as <command>TRUNCATE</command> + which normally affect a table and all of its inheritance children will cascade to all partitions, but may also be - performed on an individual partition. Note that dropping a partition - with <literal>DROP TABLE</literal> requires taking an <literal>ACCESS - EXCLUSIVE</literal> lock on the parent table. + performed on an individual partition. </para> + + <para> + Note that creating a partition using <literal>PARTITION OF</literal> + requires taking an <literal>ACCESS EXCLUSIVE</literal> lock on the + parent partitioned table. Likewise, dropping a partition + with <command>DROP TABLE</command> requires taking + an <literal>ACCESS EXCLUSIVE</literal> lock on the parent table. + It is possible to use <link linkend="sql-altertable"><command>ALTER + TABLE ATTACH/DETACH PARTITION</command></link> to perform these + operations with a weaker lock, thus reducing interference with + concurrent operations on the partitioned table. + </para> + </listitem> </varlistentry> |