]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Clean up write() return type
authorPeter Eisentraut <peter@eisentraut.org>
Wed, 15 Jul 2026 08:58:13 +0000 (10:58 +0200)
committerPeter Eisentraut <peter@eisentraut.org>
Wed, 15 Jul 2026 09:00:39 +0000 (11:00 +0200)
commit1f8c504e3086cf70a1538038b63b045de5df6a9b
tree6b21e28f3fa469f85217456fedf8cf38f00c965c
parentca326e903df4b2efcc7b9090abc4d1a9c27c3088
Clean up write() return type

and analogously for pg_pwrite() and FileWrite()

Be sure to store the return value in a variable of type ssize_t, not
int.

Some callers of FileWrite() did not have a separate error message for
a short write.  This is okay in practice because FileWriteV() sets
ENOSPC for all non-error returns, so you'll get a reasonable error
message either way.  But callers handled this inconsistently, and this
behavior isn't really prominently documented and commit 871fe4917e1
seems to frown upon it, so it seems better to make all callers handle
this consistently by adding the separate error message.

Reviewed-by: Heikki Linnakangas <hlinnaka@iki.fi>
Discussion: https://www.postgresql.org/message-id/flat/f9aab072-0078-49e4-ab93-3b08086a4406@eisentraut.org
31 files changed:
src/backend/access/heap/rewriteheap.c
src/backend/access/transam/timeline.c
src/backend/access/transam/twophase.c
src/backend/access/transam/xlog.c
src/backend/backup/basebackup_server.c
src/backend/commands/dbcommands.c
src/backend/libpq/be-fsstubs.c
src/backend/postmaster/fork_process.c
src/backend/replication/libpqwalreceiver/libpqwalreceiver.c
src/backend/replication/walreceiver.c
src/backend/storage/file/buffile.c
src/backend/storage/ipc/waiteventset.c
src/backend/storage/smgr/md.c
src/backend/utils/error/elog.c
src/backend/utils/init/miscinit.c
src/backend/utils/probes.d
src/bin/pg_basebackup/pg_recvlogical.c
src/bin/pg_basebackup/receivelog.c
src/bin/pg_checksums/pg_checksums.c
src/bin/pg_combinebackup/backup_label.c
src/bin/pg_combinebackup/copy_file.c
src/bin/pg_combinebackup/reconstruct.c
src/bin/pg_combinebackup/write_manifest.c
src/bin/pg_dump/parallel.c
src/bin/pg_test_fsync/pg_test_fsync.c
src/fe_utils/cancel.c
src/include/access/timeline.h
src/include/replication/walreceiver.h
src/interfaces/libpq/fe-lobj.c
src/test/examples/testlo.c
src/test/examples/testlo64.c