Re: truncating casts of pgoff_t

Peter Eisentraut <peter@eisentraut.org>

From: Peter Eisentraut <peter@eisentraut.org>
To: Heikki Linnakangas <hlinnaka@iki.fi>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2026-07-07T09:59:29Z
Lists: pgsql-hackers
On 22.06.26 10:55, Heikki Linnakangas wrote:
> Not that it makes much difference, but I'd suggest "if (histfilelen > 
> UINT32_MAX) elog(ERROR, ...)" here instead of an Assert. This isn't 
> performance critical and a better error message is always nice if 
> something weird happens. (I think on non-assertion builds, you'd get 
> "out of memory" error while trying to increase the send buffer).

Ok, committed with an elog instead.

> Not new with this patch, but I noticed that if the file increases in 
> size while we're reading it for some reason, we would read beyond the 
> originally calculated length. It really shouldn't happen, but it'd be 
> good to add an "nread <= bytesleft" check here, for the sake of robustness.

Yes, this is being addressed in the thread "clean up size_t/ssize_t use 
with POSIX file system APIs".




Commits

  1. Don't cast off_t to 32-bit type for output, bug fix