Provide pg_pread() and pg_pwrite() for random I/O.

Thomas Munro <tmunro@postgresql.org>

Commit: 3fd2a7932ef0708dda57369bb20c0499d905cc82
Author: Thomas Munro <tmunro@postgresql.org>
Date: 2018-11-06T20:50:01Z
Releases: 12.0
Provide pg_pread() and pg_pwrite() for random I/O.

Forward to POSIX pread() and pwrite(), or emulate them if unavailable.
The emulation is not perfect as the file position is changed, so
we'll put pg_ prefixes on the names to minimize the risk of confusion
in future patches that might inadvertently try to mix pread() and read()
on the same file descriptor.

Author: Thomas Munro
Reviewed-by: Tom Lane, Jesper Pedersen
Discussion: https://postgr.es/m/CAEepm=02rapCpPR3ZGF2vW=SBHSdFYO_bz_f-wwWJonmA3APgw@mail.gmail.com

Files

PathChange+/−
configure modified +26 −0
configure.in modified +2 −0
src/include/pg_config.h.in modified +6 −0
src/include/pg_config.h.win32 modified +6 −0
src/include/port.h modified +17 −0
src/port/pread.c added +55 −0
src/port/pwrite.c added +55 −0
src/tools/msvc/Mkvcbuild.pm modified +1 −0

Discussion