doc: clarify COPY TO for partitioning/inheritance
authorBruce Momjian <[email protected]>
Wed, 16 Dec 2020 00:20:14 +0000 (19:20 -0500)
committerBruce Momjian <[email protected]>
Wed, 16 Dec 2020 00:20:14 +0000 (19:20 -0500)
It was not clear how COPY TO behaved with partitioning/inheritance
because the paragraphs were so far apart.  Also reword to simplify.

Discussion: https://postgr.es/m/20201203211723[email protected]

Author: Justin Pryzby

Backpatch-through: 10

doc/src/sgml/ref/copy.sgml

index 5f7d32a99b5f5dbc2762018ad304981a62bd2422..085a380d0f1d9f04bbf10195130465cb98674dd4 100644 (file)
@@ -396,10 +396,16 @@ COPY <replaceable class="parameter">count</replaceable>
   <title>Notes</title>
 
    <para>
-    <command>COPY TO</command> can only be used with plain tables, not
-    with views.  However, you can write <literal>COPY (SELECT * FROM
-    <replaceable class="parameter">viewname</replaceable>) TO ...</literal>
-    to copy the current contents of a view.
+    <command>COPY TO</command> can be used only with plain
+    tables, not views, and does not copy rows from child tables
+    or child partitions.  For example, <literal>COPY <replaceable
+    class="parameter">table</replaceable> TO</literal> copies
+    the same rows as <literal>SELECT * FROM ONLY <replaceable
+    class="parameter">table</replaceable></literal>.
+    The syntax <literal>COPY (SELECT * FROM <replaceable
+    class="parameter">table</replaceable>) TO ...</literal> can be used to
+    dump all of the rows in an inheritance hierarchy, partitioned table,
+    or view.
    </para>
 
    <para>
@@ -407,16 +413,6 @@ COPY <replaceable class="parameter">count</replaceable>
     that have <literal>INSTEAD OF INSERT</> triggers.
    </para>
 
-   <para>
-    <command>COPY</command> only deals with the specific table named;
-    it does not copy data to or from child tables.  Thus for example
-    <literal>COPY <replaceable class="parameter">table</> TO</literal>
-    shows the same data as <literal>SELECT * FROM ONLY <replaceable
-    class="parameter">table</></literal>.  But <literal>COPY
-    (SELECT * FROM <replaceable class="parameter">table</>) TO ...</literal>
-    can be used to dump all of the data in an inheritance hierarchy.
-   </para>
-
    <para>
     You must have select privilege on the table
     whose values are read by <command>COPY TO</command>, and