Re: COPY enhancements - Mailing list pgsql-hackers

From Robert Haas
Subject Re: COPY enhancements
Date
Msg-id 603c8f070909110811p14b8912td9b8b7e66d3356e6@mail.gmail.com
Whole thread Raw
In response to Re: COPY enhancements  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: COPY enhancements
Re: COPY enhancements
List pgsql-hackers
On Fri, Sep 11, 2009 at 10:18 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Emmanuel Cecchet <manu@asterdata.com> writes:
>> The new syntax could look like:
>
>> COPY /tablename/ [ ( /column/ [, ...] ) ]
>>     FROM { '/filename/' | STDIN }
>>     [ [, BINARY ]
>>       [, OIDS ]
>>       [, DELIMITER [ AS ] '/delimiter/' ]
>>       [, NULL [ AS ] '/null string/' ]
>>       [, CSV [ HEADER ]
>>              [ QUOTE [ AS ] '/quote/' ]
>>              [ ESCAPE [ AS ] '/escape/' ]
>>              [ FORCE NOT NULL (/column/ [, ...]) ]
>>       [, ERRORS { SKIP |
>>                   LOG INTO { tablename | 'filename' }
>>                     [ LABEL label_name ]
>>                     [ KEY key_name ]
>>                     [ MAX ERRORS /count/ ] } ]
>
>> Is this what you had in mind?
>
> No. because that doesn't do a darn thing to make the option set less
> hard-wired into the syntax. I was thinking of a strict keyword/value
> format with non-wired-in keywords ... and only *one* keyword per value.
> See EXPLAIN.

I was thinking something like:

COPY tablename [ ( column [, ...] ) ] FROM { 'filename' | STDIN }
[WITH] [option [, ...]]

Where:

option := ColId [Sconst] | FORCE NOT NULL (column [,...])

I don't see any reasonable way to sandwhich the FORCE NOT NULL syntax
into a keyword/value notation.

...Robert


pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: COPY enhancements
Next
From: Tom Lane
Date:
Subject: Re: COPY enhancements