Re: Add 64-bit XIDs into PostgreSQL 15

Robert Haas <robertmhaas@gmail.com>

From: Robert Haas <robertmhaas@gmail.com>
To: Heikki Linnakangas <hlinnaka@iki.fi>
Cc: Maxim Orlov <orlovmg@gmail.com>, Yura Sokolov <y.sokolov@postgrespro.ru>, Evgeny Voropaev <evgeny.voropaev@tantorlabs.com>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>, Andrey Borodin <x4mmm@yandex-team.ru>
Date: 2026-02-08T01:27:55Z
Lists: pgsql-hackers
On Sat, Feb 7, 2026 at 5:57 PM Heikki Linnakangas <hlinnaka@iki.fi> wrote:
> On 25/11/2025 08:12, Maxim Orlov wrote:
> > -typedef uint32 TransactionId;
> > +typedef uint64 TransactionId;
>
> I'm not sure I'm on board with this, BTW. My hunch is this'll be a much
> smaller patch if you mostly stick to 32-bit representation in memory.

We introduced FullTransactionId -- and a lot of supporting
infrastructure -- for cases where we do want 64-bit XIDs in memory, so
I would say redefining TransactionId to be the same thing makes no
sense at all. There might be more places where we want to replace
TransactionId with FullTransactionId, but flattening the two together
can't possibly be the right thing.

-- 
Robert Haas
EDB: http://www.enterprisedb.com



Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Add SLRU tests for 64-bit page case

  2. Make use FullTransactionId in 2PC filenames

  3. Use larger segment file names for pg_notify

  4. Index SLRUs by 64-bit integers rather than by 32-bit integers