Re: Use pg_current_xact_id() instead of deprecated txid_current()

From: Shinya Kato <shinya11(dot)kato(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Álvaro Herrera <alvherre(at)kurilemu(dot)de>, pgsql-hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Use pg_current_xact_id() instead of deprecated txid_current()
Date: 2026-02-10 06:38:38
Message-ID: CAOzEurQdzTDmAVecoF05FUD8_cJLrnrX384o-xgxYOp=2xTpYA@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Mon, Feb 9, 2026 at 9:07 PM Shinya Kato <shinya11(dot)kato(at)gmail(dot)com> wrote:
>
> On Mon, Feb 9, 2026 at 1:24 AM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> >
> > =?UTF-8?Q?=C3=81lvaro_Herrera?= <alvherre(at)kurilemu(dot)de> writes:
> > > On 2026-02-08, Shinya Kato wrote:
> > >> Since pg_current_xact_id() returns xid8 which does not support
> > >> arithmetic operators, places that need "xid + 1" cast the result via
> > >> ::text::bigint first.
> >
> > > I think it may be better to add some operators, or was there a rationale for these not being there?
> >
> > I'm fairly concerned about overloading the arithmetic operators with
> > unsigned versions. The reason we never invented SQL-level uint8 and
> > such is fear of getting a lot of "ambiguous operator" errors. Now,
> > if we are careful not to create implicit casts between xid[8] and
> > any ordinary type, maybe it'd be okay to invent xid+int, xid8-int,
> > and a few more.
>
> Got it. I’ll give it a try, thanks.

I have added the + and - operators for the xid8 type in the v2-0001
patch. This allows for direct arithmetic and eliminates the need for
casting through text and bigint. Specifically, I implemented:

xid8 + int8 -> xid8
int8 + xid8 -> xid8
xid8 - int8 -> xid8
xid8 - xid8 -> int8

Additionally, the v2-0002 patch removes the existing ::text::bigint
casts where they are no longer necessary.

--
Best regards,
Shinya Kato
NTT OSS Center

Attachment Content-Type Size
v2-0001-Add-arithmetic-operators-for-xid8.patch application/octet-stream 8.1 KB
v2-0002-Use-pg_current_xact_id-instead-of-deprecated-txid.patch application/octet-stream 13.2 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message shveta malik 2026-02-10 07:01:39 Re: Improve pg_sync_replication_slots() to wait for primary to advance
Previous Message wenhui qiu 2026-02-10 06:32:06 Re: Add 64-bit XIDs into PostgreSQL 15