Bruce Momjian wrote:
> Andrew Dunstan wrote:
> >
> >
> > Bruce Momjian wrote:
> >
> > > The big problem is that \. is also a valid
> > >CSV data value (though not a valid non-CSV data value). So, the
> > >solution we came up with was to require \. to appear alone on a line in
> > >CSV mode for it to be treated as end-of-copy.
> > >
> >
> > According to the docs, that's the way to specify EOD in both text and
> > CSV mode:
> >
> > End of data can be represented by a single line containing just
> > backslash-period.
>
> Right, but in non-CSV mode, we allow \. at the end of any line because
> it is unique so I kept that behavior. That is not documented however.
>
> > Your analysis regarding line_buf.len seems correct.
> >
> > We probably should have a regression test with \. in a CSV field.
>
> Agreed. My test for CSV was simple, just try loading:
>
> x\.
> x\.b
> \.c
>
> all should load literally, but they fail.
OK, original patch applied to HEAD and smaller version to 8.1.X, and
regression test added, now attached.
--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073