On 24 March 2017 at 14:07, Kuntal Ghosh <kuntalghosh.2...@gmail.com> wrote: > On Fri, Mar 24, 2017 at 11:28 AM, Kuntal Ghosh > <kuntalghosh.2...@gmail.com> wrote: >> Hello, >> In Windows, if one needs to take a dump in plain text format (this is >> the default option, or can be specified using -Fp) with some level of >> compression (-Z[0-9]), an output file has to >> be specified. Otherwise, if the output is redirected to stdout, it'll >> create a corrupted dump (cmd is set to ASCII mode, so it'll put >> carriage returns in the file). > To reproduce the issue, please use the following command in windows cmd: > > pg_dump -Z 9 test > E:\test_xu.backup > pg_dump -Fp -Z 9 test > E:\test_xu.backup
This is a known problem. It is not specific to PostgreSQL, it affects any software that attempts to use stdin/stdout on Windows via cmd, where it is not 8-bit clean. We don't just refuse to run with stdout as a destination because it's perfectly sensible if you're not using cmd.exe. pg_dump cannot, as far as I know, tell whether it's being invoked by cmd or something else. If you have concrete ideas on how to improve this they'd be welcomed. Is there anywhere you expected to find info in the docs? Do you know of a way to detect in Windows if the output stream is not 8-bit clean from within the application program? ... other? -- Craig Ringer http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers