66.2. Transactions and Locking

The transaction IDs of currently executing transactions are shown in pg_locks in columns virtualxid and transactionid . Read-only transactions will have virtualxid s but NULL transactionid s, while both columns will be set in read-write transactions.

Some lock types wait on virtualxid , while other types wait on transactionid . Row-level read and write locks are recorded directly in the locked rows and can be inspected using the pgrowlocks extension. Row-level read locks might also require the assignment of multixact IDs ( mxid ; see Section 24.1.5.1 ).