psql copy help

From: Steve Crawford <scrawford(at)pinpointresearch(dot)com>
To: Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: psql copy help
Date: 2003-10-28 21:14:02
Message-ID: 200310281314.02610.scrawford@pinpointresearch.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

The psql help for copy (version=7.3.2 and several others) appears
incorrect (or perhaps the command parser is at fault - in any case
the help doesn't match reality):

steve=# \h copy
Command: COPY
Description: copy data between files and tables
Syntax:
COPY table [ ( column [, ...] ) ]
FROM { 'filename' | stdin }
[ [ WITH ]
[ BINARY ]
[ OIDS ]
[ DELIMITER [ AS ] 'delimiter' ]
[ NULL [ AS ] 'null string' ] ]
...

I interpret this as meaning that you can optionally specify a
delimiter, null etc. and if you do then you can optionally include
the "with" and the "as" for readability. While I can omit the "as" I
cannot omit the "with":

Works with both:
steve=# \copy foo from 'footest' with delimiter as ','
\.

Works with "with" only:
steve=# \copy foo from 'footest' with delimiter ','
\.

Does not work without "with"
steve=# \copy foo from 'footest' delimiter ','
\copy: parse error at 'delimiter'
steve=# \copy foo from 'footest' delimiter as ','
\copy: parse error at 'delimiter'

As such it seems that the help should be:
COPY table [ ( column [, ...] ) ]
FROM { 'filename' | stdin }
[ WITH
[ BINARY ]
[ OIDS ]
[ DELIMITER [ AS ] 'delimiter' ]
[ NULL [ AS ] 'null string' ] ]
...

Cheers,
Steve

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2003-10-28 21:26:40 Re: psql copy help
Previous Message Tom Lane 2003-10-28 21:08:42 Re: Dump error