Re: pgsql: Add regression tests for CSV and \., and add

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: pgsql: Add regression tests for CSV and \., and add
Дата
Msg-id 200512281509.jBSF9OE29574@candle.pha.pa.us
обсуждение исходный текст
Ответ на Re: pgsql: Add regression tests for CSV and \., and add automatic quoting of  ("Andrew Dunstan" <andrew@dunslane.net>)
Ответы Re: pgsql: Add regression tests for CSV and \., and add  ("Andrew Dunstan" <andrew@dunslane.net>)
Список pgsql-committers
Andrew Dunstan wrote:
> Andrew Dunstan said:
> > Bruce Momjian said:
> >> Log Message:
> >> -----------
> >> Add regression tests for CSV and \., and add automatic quoting of a
> single column dump that has a \. value, so the load works properly.  I also
> added documentation describing this issue.
> >>
> >
> > This seems unnecessarily elaborate, in code that is already byzantine. I
> think we can safely quote *any* field that has \. regardless of whether or
> not it is a singleton. There's no need to make a single column a special
> case - if it's valid for a singleton it's valid for any, and vice versa.
> >
>
>
> Now that I've woken up properly I realise that it's also just wrong - it
> will miss the case we need to catch of the first column of a multi-column
> line beginning with \. - just treat them all the same and all will be well.
>
> Also, this test is suspicious:
>
>     strcmp(string, "\\.") == 0
>
> Don't we also want to quote it if the field reads \.x ?
>     strncmp(string, "\\.",2) == 0
> seems like it would be a better test.

Have you looked at the regression tests I added?  \.x will no longer be
interpreted as an end-of-data marker:

    COPY testeoc FROM stdin CSV;
    a\.
    \.b
    c\.d
    "\."
    \.

    COPY testeoc TO stdout CSV;
    a\.
    \.b
    c\.d
    "\."

Our documentation says \. must appear alone on a line.  With non-CSV, we
allow \. to appear on the end of a line too because it can not be a data
value, but for CSV, we have to enforce that.

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

В списке pgsql-committers по дате отправления:

Предыдущее
От: momjian@postgresql.org (Bruce Momjian)
Дата:
Сообщение: pgsql: Add COPY CSV test that tests CSV output of \.
Следующее
От: "Andrew Dunstan"
Дата:
Сообщение: Re: pgsql: Add regression tests for CSV and \., and add