Documentation problem: The syntax for "\copy" is just wrong

From: David Tonhofer <bughunt(at)gluino(dot)name>
To: pgsql-bugs(at)postgresql(dot)org
Subject: Documentation problem: The syntax for "\copy" is just wrong
Date: 2014-07-14 18:50:38
Message-ID: 53C4267E.8090900@gluino.name
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

At


http://www.postgresql.org/docs/9.3/static/app-psql.html#APP-PSQL-META-COMMANDS-COPY

the syntax for the \copy command is given as follows:

\copy { table [ ( column_list ) ] | ( query ) } { from | to } {
'filename' | program 'command' | stdin | stdout | pstdin | pstdout } [ [
with ] ( option [, ...] ) ]

In particular, we read:

"The syntax of the command is similar to that of the SQL COPY command,
and option must indicate one of the options of the SQL COPY command."

Well, it turns out that NOPE, THIS AIN'T TRUE.

According to the description as given, the following should work.

\copy table_to_fill from 'foofile.csv' with format csv, header true,
delimiter ',';

In particular, options are separated by "," and options use the same
syntax as for COPY, which according to
http://www.postgresql.org/docs/9.3/static/sql-copy.html is:

FORMAT format_name
OIDS [ boolean ]
FREEZE [ boolean ]
DELIMITER 'delimiter_character'
NULL 'null_string'
HEADER [ boolean ]
QUOTE 'quote_character'
ESCAPE 'escape_character'
FORCE_QUOTE { ( column_name [, ...] ) | * }
FORCE_NOT_NULL ( column_name [, ...] )
ENCODING 'encoding_name'

Experiments however show \copy expects something else (the option's
values basically?), a not separated by commas:

\copy table_to_fill from 'foofile.csv' with csv header delimiter ',';

Regards,

-- David

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Noah Misch 2014-07-14 19:03:28 Re: Missing file versions for a bunch of dll/exe files in Windows builds
Previous Message Guillaume Lelarge 2014-07-14 17:09:03 Re: BUG #10949: Row security feature doesn't work.