On Fri, Sep 11, 2009 at 10:18 AM, Tom Lane <t...@sss.pgh.pa.us> wrote: > Emmanuel Cecchet <m...@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 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers