Re: BUG #6527: Error in COPY documentation syntax

Lists: pgsql-bugs
From: samuel(dot)gilbert(at)ec(dot)gc(dot)ca
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #6527: Error in COPY documentation syntax
Date: 2012-03-12 19:34:20
Message-ID: E1S7B0e-0005pL-Fl@wrigleys.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 6527
Logged by: Samuel Gilbert
Email address: samuel(dot)gilbert(at)ec(dot)gc(dot)ca
PostgreSQL version: 9.0.4
Operating system: Linux
Description:

There is an error in the syntax of the COPY statement in the documentation
for versions 9.0.x and 9.1.x. I tested on 9.0.4 and 9.1.3.

According to the documentation, given the table exists and is compatible
with the CSV file, the following statement should work :

COPY improve_station FROM '/local/improve.csv' FORMAT CSV HEADER TRUE;

However, it doesn't work. Instead I get the following error :

ERROR: syntax error at or near "FORMAT"
LINE 1: ...ns FROM '/local/improve.csv' FORMAT CSV...
^

After trying a few trials and errors, I managed to find that ommiting FORMAT
gave me another error instead :

COPY improve_stations FROM '/local/improve.csv' CSV HEADER TRUE;
ERROR: syntax error at or near "TRUE"
LINE 1: ...M '/local/improve.csv' CSV HEADER TRUE;
^

Removing the boolean value (TRUE) actually works. This means that there are
at least two errors in the syntax specification in the documentation.
Instead of "FORMAT format_name", it should be "[ TEXT | CSV | BINARY ]" and
"HEADER [ boolean ]" should be "[ HEADER ]".


From: Guillaume Lelarge <guillaume(at)lelarge(dot)info>
To: samuel(dot)gilbert(at)ec(dot)gc(dot)ca
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #6527: Error in COPY documentation syntax
Date: 2012-03-13 07:55:18
Message-ID: 1331625318.2293.7.camel@localhost.localdomain
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs

On Mon, 2012-03-12 at 19:34 +0000, samuel(dot)gilbert(at)ec(dot)gc(dot)ca wrote:
> The following bug has been logged on the website:
>
> Bug reference: 6527
> Logged by: Samuel Gilbert
> Email address: samuel(dot)gilbert(at)ec(dot)gc(dot)ca
> PostgreSQL version: 9.0.4
> Operating system: Linux
> Description:
>
> There is an error in the syntax of the COPY statement in the documentation
> for versions 9.0.x and 9.1.x. I tested on 9.0.4 and 9.1.3.
>
> According to the documentation, given the table exists and is compatible
> with the CSV file, the following statement should work :
>
> COPY improve_station FROM '/local/improve.csv' FORMAT CSV HEADER TRUE;
>

No, it shouldn't work. You forgot parentheses, and commas. This should
work:

COPY improve_station FROM '/local/improve.csv' (FORMAT CSV, HEADER
TRUE);

> However, it doesn't work. Instead I get the following error :
>
> ERROR: syntax error at or near "FORMAT"
> LINE 1: ...ns FROM '/local/improve.csv' FORMAT CSV...
> ^
>
> After trying a few trials and errors, I managed to find that ommiting FORMAT
> gave me another error instead :
>
> COPY improve_stations FROM '/local/improve.csv' CSV HEADER TRUE;
> ERROR: syntax error at or near "TRUE"
> LINE 1: ...M '/local/improve.csv' CSV HEADER TRUE;
> ^
>
> Removing the boolean value (TRUE) actually works. This means that there are
> at least two errors in the syntax specification in the documentation.
> Instead of "FORMAT format_name", it should be "[ TEXT | CSV | BINARY ]" and
> "HEADER [ boolean ]" should be "[ HEADER ]".
>

No error, and no bug. The documentation says (even if it's hard to see)
that you need parentheses and commas. The examples show it too.

--
Guillaume
http://blog.guillaume.lelarge.info
http://www.dalibo.com