mirror of
https://github.com/postgres/postgres.git
synced 2025-08-19 23:22:23 +03:00
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
This commit is contained in:
@@ -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
|
||||
|
Reference in New Issue
Block a user