public inbox for [email protected]  
help / color / mirror / Atom feed
From: Pavlo Golub <[email protected]>
To: [email protected]
Cc: [email protected]
Subject: Re[2]: [PATCH] Add pg_current_vxact_id() function to expose virtual transaction IDs
Date: Tue, 06 Jan 2026 13:32:16 +0000
Message-ID: <[email protected]> (raw)
In-Reply-To: <CAAAe_zAjUwkKJzj8AGwzDx9CPxdwyyVYcMYZi-5jQX7HMWkkXw@mail.gmail.com>
References: <[email protected]>
	<CAAAe_zAjUwkKJzj8AGwzDx9CPxdwyyVYcMYZi-5jQX7HMWkkXw@mail.gmail.com>

Hello.

Thanks for the review.

>
>Only pg_locks has it. And you can already get your VXID from there:
>
>   SELECT virtualtransaction FROM pg_locks
>   WHERE pid = pg_backend_pid() LIMIT 1;
While it is true that pg_locks contains the virtual transaction 
information, I believe there are strong technical reasons to expose this 
directly via a function.
First of all, querying pg_locks is expensive. By contrast, 
pg_current_vxact_id() is a practically free O(1) read from MyProc.
The %v log placeholder is the specific identifier for individual 
transaction executions (including read-only ones where no permanent XID 
is assigned). PIDs (%p) are session-scoped and too coarse for helping 
debug specific transactions in connection-pooled environments. This 
function allows applications to easily obtain the ID needed to correlate 
with server logs.
We already provide fast accessors for other identifiers like 
pg_backend_pid() and pg_current_xact_id(). Additionally, PostgreSQL 
often provides utility functions that overlap with other commands or 
views to improve developer experience (e.g., pg_notify() vs NOTIFY, 
pg_sleep() vs pg_sleep_for() vs pg_sleep_until()). It feels consistent 
to offer a simple accessor rather than requiring a complex query against 
a system view.

Best regards,
Pavlo Golub







view thread (3+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected], [email protected]
  Subject: Re: Re[2]: [PATCH] Add pg_current_vxact_id() function to expose virtual transaction IDs
  In-Reply-To: <[email protected]>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox