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
|
Список | 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 по дате отправления: