summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dunstan2007-03-16 13:41:21 +0000
committerAndrew Dunstan2007-03-16 13:41:21 +0000
commit24c2d41941f6820fa41871814fd82c036a4990dc (patch)
tree83cbf50083e08fb37e84e793531562b915df2f76
parentbb3e99b6bed7c3be0f17138ea7b447e03ea8961d (diff)
Remove undocumented support for copy syntax from before 7.3. Update comments to
reflect syntax actually supported, e.g. by including CSV params.
-rw-r--r--src/bin/psql/copy.c54
1 files changed, 7 insertions, 47 deletions
diff --git a/src/bin/psql/copy.c b/src/bin/psql/copy.c
index 771e8a8c76..0027744b6e 100644
--- a/src/bin/psql/copy.c
+++ b/src/bin/psql/copy.c
@@ -35,21 +35,19 @@
* parse_slash_copy
* -- parses \copy command line
*
- * The documented preferred syntax is:
+ * The documented syntax is:
* \copy tablename [(columnlist)] from|to filename
* [ with ] [ binary ] [ oids ] [ delimiter [as] char ] [ null [as] string ]
+ * [ csv [ header ] [ quote [ AS ] string ] escape [as] string
+ * [ force not null column [, ...] | force quote column [, ...] ] ]
*
* \copy ( select stmt ) to filename
* [ with ] [ binary ] [ delimiter [as] char ] [ null [as] string ]
+ * [ csv [ header ] [ quote [ AS ] string ] escape [as] string
+ * [ force quote column [, ...] ] ]
*
- * The pre-7.3 syntax was:
- * \copy [ binary ] tablename [(columnlist)] [with oids] from|to filename
- * [ [using] delimiters char ] [ with null as string ]
- *
- * The actual accepted syntax is a rather unholy combination of these,
- * plus some undocumented flexibility (for instance, the clauses after
- * WITH can appear in any order). The accepted syntax matches what
- * the backend grammar actually accepts (see backend/parser/gram.y).
+ * Force quote only applies for copy to; force not null only applies for
+ * copy from.
*
* table name can be double-quoted and can have a schema part.
* column names can be double-quoted.
@@ -216,23 +214,6 @@ parse_slash_copy(const char *args)
goto error;
}
- /*
- * Allows old COPY syntax for backward compatibility 2002-06-19
- */
- if (pg_strcasecmp(token, "with") == 0)
- {
- token = strtokx(NULL, whitespace, NULL, NULL,
- 0, false, false, pset.encoding);
- if (!token || pg_strcasecmp(token, "oids") != 0)
- goto error;
- result->oids = true;
-
- token = strtokx(NULL, whitespace, NULL, NULL,
- 0, false, false, pset.encoding);
- if (!token)
- goto error;
- }
-
if (pg_strcasecmp(token, "from") == 0)
result->from = true;
else if (pg_strcasecmp(token, "to") == 0)
@@ -267,27 +248,6 @@ parse_slash_copy(const char *args)
token = strtokx(NULL, whitespace, NULL, NULL,
0, false, false, pset.encoding);
- /*
- * Allows old COPY syntax for backward compatibility.
- */
- if (token && pg_strcasecmp(token, "using") == 0)
- {
- token = strtokx(NULL, whitespace, NULL, NULL,
- 0, false, false, pset.encoding);
- if (!(token && pg_strcasecmp(token, "delimiters") == 0))
- goto error;
- }
- if (token && pg_strcasecmp(token, "delimiters") == 0)
- {
- token = strtokx(NULL, whitespace, NULL, "'",
- nonstd_backslash, true, false, pset.encoding);
- if (!token)
- goto error;
- result->delim = pg_strdup(token);
- token = strtokx(NULL, whitespace, NULL, NULL,
- 0, false, false, pset.encoding);
- }
-
if (token)
{
/*