truncating casts of pgoff_t

Peter Eisentraut <peter@eisentraut.org>

From: Peter Eisentraut <peter@eisentraut.org>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2026-06-22T07:56:55Z
Lists: pgsql-hackers

Attachments

I found a couple of places where a pgoff_t value, typically a signed 
64-bit integer, is cast to a type with a smaller range.  I noticed this 
specifically in error messages, so it's mostly cosmetic.  Also, files 
with a size where this would matter are not expected in many places, but 
I suspect that the case in basebackup_server.c in the attached patch can 
actually happen.

The fix is to use the %lld print format and a cast to long long int, 
which is the style already in most places.

In passing, I also converted a few places that used %llu to print 
pgoff_t to also use %lld instead.  This is mostly for consistency, but 
it also feels more robust in case a negative value ever sneaks in.

Commits

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