https://www.postgresql.org/docs/current/sql-copy.html |. COPY FROM can be used with plain, foreign, or partitioned tables or with views that have INSTEAD OF INSERT triggers. |. COPY only deals with the specific table named; IT DOES NOT COPY DATA TO OR FROM CHILD TABLES. ...
That language in commit 854b5eb51 was never updated since partitioning was added, so I propose this. I'm not sure, but maybe it should still say that "COPY TO does not copy data to child tables of inheritance hierarchies." diff --git a/doc/src/sgml/ref/copy.sgml b/doc/src/sgml/ref/copy.sgml index 369342b74d..0631dfe6b3 100644 --- a/doc/src/sgml/ref/copy.sgml +++ b/doc/src/sgml/ref/copy.sgml @@ -414,9 +414,14 @@ COPY <replaceable class="parameter">count</replaceable> <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. + views, and does not copy data from child tables or partitions. + Thus for example + <literal>COPY <replaceable class="parameter">table</replaceable> TO</literal> + shows the same data as <literal>SELECT * FROM ONLY <replaceable + class="parameter">table</replaceable></literal>. But <literal>COPY + (SELECT * FROM <replaceable class="parameter">table</replaceable>) TO ...</literal> + can be used to dump all of the data in an inheritance hierarchy, + partitioned table, or view. </para> <para> @@ -425,16 +430,6 @@ COPY <replaceable class="parameter">count</replaceable> <literal>INSTEAD OF INSERT</literal> 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</replaceable> TO</literal> - shows the same data as <literal>SELECT * FROM ONLY <replaceable - class="parameter">table</replaceable></literal>. But <literal>COPY - (SELECT * FROM <replaceable class="parameter">table</replaceable>) 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