mirror of
https://github.com/postgres/postgres.git
synced 2025-05-11 05:41:32 +03:00
Move check for binary mode and on_error option to the appropriate location.
Commit 9e2d870119 placed the check for binary mode and on_error before default values were inserted, which was not ideal. This commit moves the check to a more appropriate position after default values are set. Additionally, the comment incorrectly mentioned two checks before inserting defaults, when there are actually three. This commit corrects that comment. Author: Atsushi Torikoshi Reviewed-by: Fujii Masao Discussion: https://postgr.es/m/8830518a-28ac-43a2-8a11-1676d9a3cdf8@oss.nttdata.com
This commit is contained in:
parent
4ac2a9bece
commit
a39297ec02
@ -672,7 +672,7 @@ ProcessCopyOptions(ParseState *pstate,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check for incompatible options (must do these two before inserting
|
* Check for incompatible options (must do these three before inserting
|
||||||
* defaults)
|
* defaults)
|
||||||
*/
|
*/
|
||||||
if (opts_out->binary && opts_out->delim)
|
if (opts_out->binary && opts_out->delim)
|
||||||
@ -691,11 +691,6 @@ ProcessCopyOptions(ParseState *pstate,
|
|||||||
(errcode(ERRCODE_SYNTAX_ERROR),
|
(errcode(ERRCODE_SYNTAX_ERROR),
|
||||||
errmsg("cannot specify %s in BINARY mode", "DEFAULT")));
|
errmsg("cannot specify %s in BINARY mode", "DEFAULT")));
|
||||||
|
|
||||||
if (opts_out->binary && opts_out->on_error != COPY_ON_ERROR_STOP)
|
|
||||||
ereport(ERROR,
|
|
||||||
(errcode(ERRCODE_SYNTAX_ERROR),
|
|
||||||
errmsg("only ON_ERROR STOP is allowed in BINARY mode")));
|
|
||||||
|
|
||||||
/* Set defaults for omitted options */
|
/* Set defaults for omitted options */
|
||||||
if (!opts_out->delim)
|
if (!opts_out->delim)
|
||||||
opts_out->delim = opts_out->csv_mode ? "," : "\t";
|
opts_out->delim = opts_out->csv_mode ? "," : "\t";
|
||||||
@ -900,6 +895,11 @@ ProcessCopyOptions(ParseState *pstate,
|
|||||||
errmsg("NULL specification and DEFAULT specification cannot be the same")));
|
errmsg("NULL specification and DEFAULT specification cannot be the same")));
|
||||||
}
|
}
|
||||||
/* Check on_error */
|
/* Check on_error */
|
||||||
|
if (opts_out->binary && opts_out->on_error != COPY_ON_ERROR_STOP)
|
||||||
|
ereport(ERROR,
|
||||||
|
(errcode(ERRCODE_SYNTAX_ERROR),
|
||||||
|
errmsg("only ON_ERROR STOP is allowed in BINARY mode")));
|
||||||
|
|
||||||
if (opts_out->reject_limit && !opts_out->on_error)
|
if (opts_out->reject_limit && !opts_out->on_error)
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user