I wrote: > Andrew Dunstan <andrew.duns...@2ndquadrant.com> writes: >> Seems reasonable. If we rip it out completely we'll have to find all the >> places it breaks and fix them. And we'll almost certainly get new >> breakage. If it's hiding a real bug we'll have to do that, but I'd be >> reluctant unless there's actual proof.
> Hard to tell. What I propose to do right now is change the \r filters > as shown above, and see if the test I added in 004_logrotate.pl starts > to show failures on Windows. If it does, and no other place does, > I'm willing to be satisfied with that. If we see *other* failures then > that'd prove that the problem is real, no? So I did that, and the first report is from bowerbird and it's still green. Unless I'm completely misinterpreting what's happening (always a possibility), that means we're still managing to remove "data" occurrences of \r. The most likely theory about that, I think, is that IPC::Run::run already translated any \r\n occurrences in the psql command's output to plain \n. Then, the \r generated by pg_current_logfile() would butt up against the line-ending \n, allowing the "fix" in sub psql to remove valid data. One thing I noticed while making 91bdf499b is that some of these substitutions are conditioned on "if $TestLib::windows_os" while others are conditioned on "if $Config{osname} eq 'msys'". What is the reason for this difference? Is it possible that we only really need to do it in the latter case? regards, tom lane