Обсуждение: BUG #4486: CSV feature request

Поиск
Список
Период
Сортировка

BUG #4486: CSV feature request

От
"Andrew Grillet"
Дата:
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)

Re: BUG #4486: CSV feature request

От
Bruce Momjian
Дата:
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. +