Documentation problem: The syntax for "\copy" is just wrong - Mailing list pgsql-bugs

From David Tonhofer
Subject Documentation problem: The syntax for "\copy" is just wrong
Date
Msg-id 53C4267E.8090900@gluino.name
Whole thread Raw
Responses Re: Documentation problem: The syntax for "\copy" is just wrong  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: Documentation problem: The syntax for "\copy" is just wrong  (Pedro Gimeno <pgsql-004@personal.formauri.es>)
List 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

pgsql-bugs by date:

Previous
From: Marko Tiikkaja
Date:
Subject: Re: BUG #10794: psql sometimes ignores .psqlrc
Next
From: "Lars Ewald (web.de)"
Date:
Subject: Fwd: Re: Compile fails on AIX 6.1