diff options
author | Andrew Dunstan | 2007-03-16 13:41:21 +0000 |
---|---|---|
committer | Andrew Dunstan | 2007-03-16 13:41:21 +0000 |
commit | 24c2d41941f6820fa41871814fd82c036a4990dc (patch) | |
tree | 83cbf50083e08fb37e84e793531562b915df2f76 | |
parent | bb3e99b6bed7c3be0f17138ea7b447e03ea8961d (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.c | 54 |
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) { /* |