summaryrefslogtreecommitdiff
path: root/src/backend/commands/copy.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2024-10-21 15:08:22 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2024-10-21 15:08:22 -0400
commitbeab395a42b24f2049ad09b1d90ee9f218743d04 (patch)
treedb8c4fc4fe519ba6c84371b764accf4edff5cd2c /src/backend/commands/copy.c
parent8e607a5a4be54f2d2bdfb7a53584d4b7ca1d2be3 (diff)
Fix wrong assertion and poor error messages in "COPY (query) TO".
If the query is rewritten into a NOTIFY command by a DO INSTEAD rule, we'd get an assertion failure, or in non-assert builds issue a rather confusing error message. Improve that. Also fix a longstanding grammar mistake in a nearby error message. Per bug #18664 from Alexander Lakhin. Back-patch to all supported branches. Tender Wang and Tom Lane Discussion: https://postgr.es/m/18664-ffd0ebc2386598df@postgresql.org
Diffstat (limited to 'src/backend/commands/copy.c')
-rw-r--r--src/backend/commands/copy.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c
index 0f173d490ae..aad6e093302 100644
--- a/src/backend/commands/copy.c
+++ b/src/backend/commands/copy.c
@@ -1542,7 +1542,7 @@ BeginCopy(ParseState *pstate,
if (q->querySource == QSRC_NON_INSTEAD_RULE)
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
- errmsg("DO ALSO rules are not supported for the COPY")));
+ errmsg("DO ALSO rules are not supported for COPY")));
}
ereport(ERROR,
@@ -1559,7 +1559,11 @@ BeginCopy(ParseState *pstate,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("COPY (SELECT INTO) is not supported")));
- Assert(query->utilityStmt == NULL);
+ /* The only other utility command we could see is NOTIFY */
+ if (query->utilityStmt != NULL)
+ ereport(ERROR,
+ (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+ errmsg("COPY query must not be a utility command")));
/*
* Similarly the grammar doesn't enforce the presence of a RETURNING