]> granicus.if.org Git - postgresql/commitdiff
Fix pg_verify_checksums on Windows.
authorAmit Kapila <akapila@postgresql.org>
Fri, 31 Aug 2018 09:55:42 +0000 (15:25 +0530)
committerAmit Kapila <akapila@postgresql.org>
Fri, 31 Aug 2018 09:55:42 +0000 (15:25 +0530)
To verify the checksums, we open the file in text mode which doesn't work
on Windows as WIN32 treats Control-Z as EOF in files opened in text mode.
This leads to "short read of block .." error in some cases.

Fix it by opening the files in the binary mode.

Author: Amit Kapila
Reviewed-by: Magnus Hagander
Backpatch-through: 11
Discussion: https://postgr.es/m/CAA4eK1+LOnzod+h85FGmyjWzXKy-XV1FYwEyP-Tky2WpD5cxwA@mail.gmail.com

src/bin/pg_verify_checksums/pg_verify_checksums.c

index a941236563645eed5503eaaf2770ed2f5bdc0fe3..d7b6f4a5280daae7bc02e275cbfd927a8db54dec 100644 (file)
@@ -83,7 +83,7 @@ scan_file(char *fn, int segmentno)
        int                     f;
        int                     blockno;
 
-       f = open(fn, 0);
+       f = open(fn, O_RDONLY | PG_BINARY);
        if (f < 0)
        {
                fprintf(stderr, _("%s: could not open file \"%s\": %s\n"),