BUG #4486: CSV feature request
The following bug has been logged online:
Bug reference: 4486
Logged by: Andrew Grillet
Email address: andrew@grillet.co.uk
PostgreSQL version: 8.3
Operating system: Windows XP
Description: CSV feature request
Details:
Excel 2007 decides on the fly whether to quote fields or not on the basis of
whther individual rows have a comma in that field. There does not appear any
obvious way to prevent this bizarre behaviour.
I suggest the syntax:
COPY table (columns) FROM 'filename.csv. with csv OPTIONAL QUOTE [AS '"'];
As a way to tell PostgreSQL this behaviour is expected and must be handled
without complaint. Default should be to complain if file is stupidly
formatted.
----
Additionally, where a character that is not a member of the acceptable
character set is found, plese attempt to print it as char as well as
octal/hex. It can be very difficult to find which character is causeing the
problem! (Eg em-dashes, smart quotes)
Andrew Grillet wrote:
The following bug has been logged online:
Bug reference: 4486
Logged by: Andrew Grillet
Email address: andrew@grillet.co.uk
PostgreSQL version: 8.3
Operating system: Windows XP
Description: CSV feature request
Details:Excel 2007 decides on the fly whether to quote fields or not on the basis of
whther individual rows have a comma in that field. There does not appear any
obvious way to prevent this bizarre behaviour.I suggest the syntax:
COPY table (columns) FROM 'filename.csv. with csv OPTIONAL QUOTE [AS '"'];
As a way to tell PostgreSQL this behaviour is expected and must be handled
without complaint. Default should be to complain if file is stupidly
formatted.
What problem are you having, exactly? I tried this:
test=> create table test (x text, y text);
test=> copy test from '/rtmp/1' with csv;
COPY 3
where /rtmp/1 had:
"a", "b"
a, "b"
a, b
and saw no errors or warnings. Are you saying we should complain, and
if so, why?
--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +