On Wed, Jun 20, 2012 at 12:18:45PM -0400, Tom Lane wrote: > David Fetter <da...@fetter.org> writes: > > OK, new proposal: > > > COPY FROM (Thanks, Andrew! Must not post while asleep...) should have > > an option which requires that HEADER be enabled and mandates that the > > column names in the header match the columns coming in. > > > Has someone got a better name for this option than > > KEEP_HEADER_COLUMN_NAMES? > > Well, if it's just checking that the list matches, then maybe > CHECK_HEADER would do.
OK > In your original proposal, I was rather wondering what should happen > if the incoming file didn't have the same set of columns called out > in the COPY command's column list. (That is, while *rearranging* > the columns might be thought non-astonishing, I'm less convinced > about a copy operation that inserts or defaults columns differently > from what the command said should happen.) If we're just checking > for a match, that question goes away. Let's imagine we have a table foo(id serial, t text, n numeric) and a CSV file foo.csv with headers (n, t). Just to emphasize, the column ordering is different in the places where they match. Would COPY foo (t,n) FROM '/path/to/foo.csv' WITH (CSV, HEADER, CHECK_HEADER) now "just work" (possibly with some performance penalty) and COPY foo (t,n) FROM '/path/to/foo.csv' WITH (CSV, HEADER) only "work," i.e. import gobbledygook, in the case where every t entry in foo.csv happened to be castable to NUMERIC? Cheers, David. -- David Fetter <da...@fetter.org> http://fetter.org/ Phone: +1 415 235 3778 AIM: dfetter666 Yahoo!: dfetter Skype: davidfetter XMPP: david.fet...@gmail.com iCal: webcal://www.tripit.com/feed/ical/people/david74/tripit.ics Remember to vote! Consider donating to Postgres: http://www.postgresql.org/about/donate -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers