|
8 | 8 | *
|
9 | 9 | *
|
10 | 10 | * IDENTIFICATION
|
11 |
| - * $PostgreSQL: pgsql/src/backend/commands/copy.c,v 1.257 2005/12/28 03:25:32 momjian Exp $ |
| 11 | + * $PostgreSQL: pgsql/src/backend/commands/copy.c,v 1.258 2006/02/03 12:41:07 momjian Exp $ |
12 | 12 | *
|
13 | 13 | *-------------------------------------------------------------------------
|
14 | 14 | */
|
@@ -856,6 +856,25 @@ DoCopy(const CopyStmt *stmt)
|
856 | 856 | (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
|
857 | 857 | errmsg("COPY delimiter must be a single character")));
|
858 | 858 |
|
| 859 | + /* Disallow end-of-line characters */ |
| 860 | + if (strchr(cstate->delim, '\r') != NULL || |
| 861 | + strchr(cstate->delim, '\n') != NULL) |
| 862 | + ereport(ERROR, |
| 863 | + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), |
| 864 | + errmsg("COPY delimiter cannot be newline or carriage return"))); |
| 865 | + |
| 866 | + if (strchr(cstate->null_print, '\r') != NULL || |
| 867 | + strchr(cstate->null_print, '\n') != NULL) |
| 868 | + ereport(ERROR, |
| 869 | + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), |
| 870 | + errmsg("COPY null cannot use newline or carriage return"))); |
| 871 | + |
| 872 | + /* Disallow backslash in non-CSV mode */ |
| 873 | + if (!cstate->csv_mode && strchr(cstate->delim, '\\') != NULL) |
| 874 | + ereport(ERROR, |
| 875 | + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), |
| 876 | + errmsg("COPY delimiter cannot be backslash"))); |
| 877 | + |
859 | 878 | /* Check header */
|
860 | 879 | if (!cstate->csv_mode && cstate->header_line)
|
861 | 880 | ereport(ERROR,
|
|
0 commit comments