Prevent COPY from using newline or carriage return as delimiter or null.
Disallow backslash as the delimiter in non-CVS mode. David Fetter
This commit is contained in:
parent
890707a537
commit
eb7bd06983
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/commands/copy.c,v 1.257 2005/12/28 03:25:32 momjian Exp $
|
* $PostgreSQL: pgsql/src/backend/commands/copy.c,v 1.258 2006/02/03 12:41:07 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -856,6 +856,25 @@ DoCopy(const CopyStmt *stmt)
|
|||||||
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
|
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
|
||||||
errmsg("COPY delimiter must be a single character")));
|
errmsg("COPY delimiter must be a single character")));
|
||||||
|
|
||||||
|
/* Disallow end-of-line characters */
|
||||||
|
if (strchr(cstate->delim, '\r') != NULL ||
|
||||||
|
strchr(cstate->delim, '\n') != NULL)
|
||||||
|
ereport(ERROR,
|
||||||
|
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||||
|
errmsg("COPY delimiter cannot be newline or carriage return")));
|
||||||
|
|
||||||
|
if (strchr(cstate->null_print, '\r') != NULL ||
|
||||||
|
strchr(cstate->null_print, '\n') != NULL)
|
||||||
|
ereport(ERROR,
|
||||||
|
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||||
|
errmsg("COPY null cannot use newline or carriage return")));
|
||||||
|
|
||||||
|
/* Disallow backslash in non-CSV mode */
|
||||||
|
if (!cstate->csv_mode && strchr(cstate->delim, '\\') != NULL)
|
||||||
|
ereport(ERROR,
|
||||||
|
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||||
|
errmsg("COPY delimiter cannot be backslash")));
|
||||||
|
|
||||||
/* Check header */
|
/* Check header */
|
||||||
if (!cstate->csv_mode && cstate->header_line)
|
if (!cstate->csv_mode && cstate->header_line)
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
|
Loading…
Reference in New Issue
Block a user