Add BufFileRead variants with short read and EOF detection
authorPeter Eisentraut <peter@eisentraut.org>
Mon, 16 Jan 2023 08:20:44 +0000 (09:20 +0100)
committerPeter Eisentraut <peter@eisentraut.org>
Mon, 16 Jan 2023 10:01:31 +0000 (11:01 +0100)
commit20428d344a2964de6aaef9984fcd472f3c65d115
tree12ec494bd3dd561e56417915bcf97da45eb1cb17
parent1561612e3bf3264c31618b9455d0c1003b9271ec
Add BufFileRead variants with short read and EOF detection

Most callers of BufFileRead() want to check whether they read the full
specified length.  Checking this at every call site is very tedious.
This patch provides additional variants BufFileReadExact() and
BufFileReadMaybeEOF() that include the length checks.

I considered changing BufFileRead() itself, but this function is also
used in extensions, and so changing the behavior like this would
create a lot of problems there.  The new names are analogous to the
existing LogicalTapeReadExact().

Reviewed-by: Amit Kapila <amit.kapila16@gmail.com>
Discussion: https://www.postgresql.org/message-id/flat/f3501945-c591-8cc3-5ef0-b72a2e0eaa9c@enterprisedb.com
src/backend/access/gist/gistbuildbuffers.c
src/backend/backup/backup_manifest.c
src/backend/executor/nodeHashjoin.c
src/backend/replication/logical/worker.c
src/backend/storage/file/buffile.c
src/backend/utils/sort/logtape.c
src/backend/utils/sort/sharedtuplestore.c
src/backend/utils/sort/tuplestore.c
src/include/storage/buffile.h