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 5179125510b..91c036d1cbe 100644 --- a/doc/src/sgml/ddl.sgml +++ b/doc/src/sgml/ddl.sgml @@ -4114,9 +4114,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: @@ -4137,11 +4143,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 a03dee4afef..10ef699fab9 100644 --- a/doc/src/sgml/ref/create_table.sgml +++ b/doc/src/sgml/ref/create_table.sgml @@ -615,12 +615,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> |