syslogger line-end processing infelicity - Mailing list pgsql-hackers

From Andrew Dunstan
Subject syslogger line-end processing infelicity
Date
Msg-id 46608C6E.7020807@dunslane.net
Whole thread Raw
Responses Re: syslogger line-end processing infelicity  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: syslogger line-end processing infelicity  (Magnus Hagander <magnus@hagander.net>)
List pgsql-hackers
I have been looking at the syslogger code in connection with the CSV log 
output proposal, and I'm quite concerned about the way it translates 
every \n into \r\n for Windows output. This has several problems, not 
least of which is that we can by no means assume that every \n has no 
semantic significance. Consider the following:

INSERT INTO mytable (textfield) VALUES ($$abc
def$$);

Now if the line ending there is in fact \r\n we will output \r\r\n for 
it, and if it is just \n we will output \r\n, and in neither case will 
we be logging what is actually inserted.

My first thought is that we might need to distinguish between newlines 
embedded in the query, which shouldn't be touched, from the newline at 
the end of the log line.

My second thought is that we should quite possibly abandon this 
translation altogether - we know that our COPY code is quite happy with 
either style of line ending, as long as the file is consistent, and also 
many Windows programs will quite happily read files with Unix style line 
endings (e.g. Wordpad, although not Notepad).

My third thought is that even so my first thought has some virtue :-). 
We really need to ensure that we only rotate files when we are at a 
genuine end of log line - the situation that Greg Smith described of 
having the rotator chop a line in two between two files seem wholly 
unacceptable.

Thoughts?


cheers

andrew



pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Constraint exclusion oddity with composite index
Next
From: Bruce Momjian
Date:
Subject: Upcoming events