Hi,

I found that generated columns and system columns cannot be used in
COPY FROM WHERE expressions, but the COPY docs still mentions
only the restriction on subqueries.

So I've created the attached patch which updates the docs to also list
generated columns and system columns as unsupported in COPY FROM WHERE
expressions.

Since generated columns have been rejected in COPY FROM WHERE since
v13, that docs change should be backpatched to all supported branches.
But the system-column restriction was introduced in v19, so that part
does not need to be backpatched.

Thoughts?

Regards,

-- 
Fujii Masao
From 168af14a081eec04c03e509df21715cafa81582d Mon Sep 17 00:00:00 2001
From: Fujii Masao <[email protected]>
Date: Fri, 26 Jun 2026 00:56:51 +0900
Subject: [PATCH v1] doc: Clarify COPY FROM WHERE expression restrictions

Commit aa606b9316a disallowed generated columns in COPY FROM WHERE
expressions, and commit 21c69dc73f9 disallowed system columns.
However, the COPY reference page still mentions only the restriction
on subqueries.

Update the documentation to also list generated columns and system
columns as unsupported in COPY FROM WHERE expressions.

Backpatch the generated-column documentation change to all supported
branches. The system-column restriction was introduced in v19, so that
part does not need to be backpatched.
---
 doc/src/sgml/ref/copy.sgml | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/doc/src/sgml/ref/copy.sgml b/doc/src/sgml/ref/copy.sgml
index 8433344e5b6..5413bb0e12d 100644
--- a/doc/src/sgml/ref/copy.sgml
+++ b/doc/src/sgml/ref/copy.sgml
@@ -480,10 +480,11 @@ WHERE <replaceable 
class="parameter">condition</replaceable>
    </para>
 
    <para>
-    Currently, subqueries are not allowed in <literal>WHERE</literal>
-    expressions, and the evaluation does not see any changes made by the
-    <command>COPY</command> itself (this matters when the expression
-    contains calls to <literal>VOLATILE</literal> functions).
+    Currently, subqueries and generated columns are not allowed in
+    <literal>WHERE</literal> expressions, and the evaluation does not see
+    any changes made by the <command>COPY</command> itself (this matters
+    when the expression contains calls to <literal>VOLATILE</literal>
+    functions).
    </para>
 
     </listitem>
-- 
2.53.0

Attachment: v1-0001-doc-Clarify-COPY-FROM-WHERE-expression-restrictio.patch
Description: Binary data

Reply via email to