Handle ReadFile() EOF correctly on Windows.
authorThomas Munro <tmunro@postgresql.org>
Wed, 20 Nov 2019 04:52:15 +0000 (17:52 +1300)
committerThomas Munro <tmunro@postgresql.org>
Wed, 20 Nov 2019 05:29:37 +0000 (18:29 +1300)
commit6969deeb8d3991cc533a5bcf451ae5eecaa9a517
tree11c5e673f5c27edb19c08fd2fbf725cda73b956d
parent80e05a088e4edd421c9c0374d54d787c8a4c0d86
Handle ReadFile() EOF correctly on Windows.

When ReadFile() encounters the end of a file while reading from
a synchronous handle with an offset provided via OVERLAPPED, it
reports an error instead of returning 0.  By not handling that
(undocumented) result correctly, we caused some noisy LOG
messages about an unknown error code.  Repair.

Back-patch to 12, where we started using pread()/ReadFile() with
an offset.

Reported-by: ZhenHua Cai, Amit Kapila
Diagnosed-by: Juan Jose Santamaria Flecha
Tested-by: Amit Kapila
Discussion: https://postgr.es/m/CAA4eK1LK3%2BWRtpz68TiRdpHwxxWm%3D%2Bt1BMf-G68hhQsAQ41PZg%40mail.gmail.com
src/port/pread.c