Tom Lane wrote:
> Bruce Momjian <pgman@candle.pha.pa.us> writes:
> > COPY to STDOUT/STDIN will be controlled by the client end-of-line
> > because those files are opened in text mode by the client, I think.
>
> Actually, I was going to question you on that before. AFAICT, the
> just-committed code will *only* send LF newlines during COPY TO STDOUT,
> independent of the server's OS, the client's OS, or anything else.
Right. In my initial testing, I noticed that when I was sending \r\n to
the client for STDOUT, the regression tests hung, so I added code to
test/pass pipe and force \n for STDIN/STDOUT.
> This is perhaps justifiable on the grounds that "the FE/BE protocol
> spec says LF and not anything else", and I didn't complain because
> I assumed that was your thinking. But your response to Neil doesn't
It is my thinking. The server could be Win32 and the client could be
unix, or the opposite. I see no reason to allow handling of any line
terminator at that level.
> suggest that you're thinking that way. What exactly do you have in
> mind here? Certainly the client is not going to determine the
> newline format for COPY TO STDOUT unless it does translation.
My idea was that if the client opens a file to dump the STDOUT data, it
will opened in text mode, and that will have \r\n for Win32 and \n for
Unix.
--
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