mirror of
https://github.com/postgres/postgres.git
synced 2025-12-09 02:08:45 +03:00
Add HINT for COPY TO when WHERE clause is used.
COPY TO does not support a WHERE clause, and currently fails with the error:
ERROR: WHERE clause not allowed with COPY TO
Since the intended behavior can be achieved by using
COPY (SELECT ... WHERE ...) TO, this commit adds a HINT
to the error message:
HINT: Try the COPY (SELECT ... WHERE ...) TO variant.
This makes the error more informative and helps users
quickly find the alternative usage.
Author: Atsushi Torikoshi <torikoshia@oss.nttdata.com>
Reviewed-by: Jim Jones <jim.jones@uni-muenster.de>
Discussion: https://postgr.es/m/3520c224c5ffac0113aef84a9179f37e@oss.nttdata.com
This commit is contained in:
@@ -3442,6 +3442,7 @@ CopyStmt: COPY opt_binary qualified_name opt_column_list
|
|||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_SYNTAX_ERROR),
|
(errcode(ERRCODE_SYNTAX_ERROR),
|
||||||
errmsg("WHERE clause not allowed with COPY TO"),
|
errmsg("WHERE clause not allowed with COPY TO"),
|
||||||
|
errhint("Try the COPY (SELECT ... WHERE ...) TO variant."),
|
||||||
parser_errposition(@11)));
|
parser_errposition(@11)));
|
||||||
|
|
||||||
n->options = NIL;
|
n->options = NIL;
|
||||||
|
|||||||
@@ -163,6 +163,7 @@ COPY x TO stdout WHERE a = 1;
|
|||||||
ERROR: WHERE clause not allowed with COPY TO
|
ERROR: WHERE clause not allowed with COPY TO
|
||||||
LINE 1: COPY x TO stdout WHERE a = 1;
|
LINE 1: COPY x TO stdout WHERE a = 1;
|
||||||
^
|
^
|
||||||
|
HINT: Try the COPY (SELECT ... WHERE ...) TO variant.
|
||||||
COPY x from stdin WHERE a = 50004;
|
COPY x from stdin WHERE a = 50004;
|
||||||
COPY x from stdin WHERE a > 60003;
|
COPY x from stdin WHERE a > 60003;
|
||||||
COPY x from stdin WHERE f > 60003;
|
COPY x from stdin WHERE f > 60003;
|
||||||
|
|||||||
Reference in New Issue
Block a user