Skip to content

Commit bd61d5a

Browse files
committed
On Windows, make pg_dump use binary mode for compressed plain text output.
The combination of -Z -Fp and output to stdout resulted in corrupted output data, because we left stdout in text mode, resulting in newline conversion being done on the compressed stream. Switch stdout to binary mode for this case, at the same place where we do it for non-text output formats. Report and patch by Kuntal Ghosh, tested by Ashutosh Sharma and Neha Sharma. Back-patch to all supported branches. Discussion: https://postgr.es/m/CAGz5QCJPvbBjXAmJuGx1B_41yVCetAJhp7rtaDf7XQGWuB1GSw@mail.gmail.com
1 parent 3bdea16 commit bd61d5a

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/bin/pg_dump/pg_backup_archiver.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2337,12 +2337,12 @@ _allocAH(const char *FileSpec, const ArchiveFormat fmt,
23372337
AH->OF = stdout;
23382338

23392339
/*
2340-
* On Windows, we need to use binary mode to read/write non-text archive
2341-
* formats. Force stdin/stdout into binary mode if that is what we are
2342-
* using.
2340+
* On Windows, we need to use binary mode to read/write non-text files,
2341+
* which include all archive formats as well as compressed plain text.
2342+
* Force stdin/stdout into binary mode if that is what we are using.
23432343
*/
23442344
#ifdef WIN32
2345-
if (fmt != archNull &&
2345+
if ((fmt != archNull || compression != 0) &&
23462346
(AH->fSpec == NULL || strcmp(AH->fSpec, "") == 0))
23472347
{
23482348
if (mode == archModeWrite)

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy