pgsql: Add BufFileRead variants with short read and EOF detection

From: Peter Eisentraut <peter(at)eisentraut(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Add BufFileRead variants with short read and EOF detection
Date: 2023-01-16 10:15:55
Message-ID: E1pHMWx-003wZp-I8@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

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(dot)kapila16(at)gmail(dot)com>
Discussion: https://www.postgresql.org/message-id/flat/f3501945-c591-8cc3-5ef0-b72a2e0eaa9c(at)enterprisedb(dot)com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/20428d344a2964de6aaef9984fcd472f3c65d115

Modified Files
--------------
src/backend/access/gist/gistbuildbuffers.c | 7 +----
src/backend/backup/backup_manifest.c | 9 +-----
src/backend/executor/nodeHashjoin.c | 18 +++--------
src/backend/replication/logical/worker.c | 32 +++----------------
src/backend/storage/file/buffile.c | 50 ++++++++++++++++++++++++++++--
src/backend/utils/sort/logtape.c | 9 +-----
src/backend/utils/sort/sharedtuplestore.c | 49 ++++-------------------------
src/backend/utils/sort/tuplestore.c | 29 ++++-------------
src/include/storage/buffile.h | 4 ++-
9 files changed, 73 insertions(+), 134 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Peter Eisentraut 2023-01-16 11:12:10 Re: pgsql: Doc: add XML ID attributes to <sectN> and <varlistentry> tags.
Previous Message Peter Eisentraut 2023-01-16 09:08:57 pgsql: Fix some BufFileRead() error reporting