Sorry, I missed this reply of yours earlier.
On 27/08/2026 10:35, Masahiko Sawada wrote:
On Thu, Aug 27, 2026 at 12:06 AM Chao Li <[email protected]> wrote:
bigint is a signed int64, so it cannot represent the full uint64 range,
although perhaps this is only a theoretical concern. If we want to avoid this
limitation, should we use numeric instead?
I'd prefer to keep bigint here. pg_get_multixact_stats() already
reports num_members and members_size as int8, and both are derived
from these same offsets. Also, other fields in pg_control_checkpoint()
are fixed-width types, whereas numeric is pass-by-reference.
I considered using xid8 instead but it has only comparison operators
and no arithmetic, so we couldn't compute a delta between two
checkpoints.
Hmm, that's a good point, although 'xid' didn't have those operators or
arithmetic either.
- Heikki