From 98b1dda7f760256366cd81fa476dc471e14a3168 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Thu, 3 Apr 2014 14:18:48 -0400 Subject: [PATCH] Fix documentation about joining pg_locks to other views. The advice to join to pg_prepared_xacts via the transaction column was not updated when the transaction column was replaced by virtualtransaction. Since it's not quite obvious how to do that join, give an explicit example. For consistency also give an example for the adjacent case of joining to pg_stat_activity. And link-ify the view references too, just because we can. Per bug #9840 from Alexey Bashtanov. Michael Paquier and Tom Lane --- doc/src/sgml/catalogs.sgml | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/doc/src/sgml/catalogs.sgml b/doc/src/sgml/catalogs.sgml index 27e46c8ef4..cd4be13fe5 100644 --- a/doc/src/sgml/catalogs.sgml +++ b/doc/src/sgml/catalogs.sgml @@ -6103,16 +6103,27 @@ The pid column can be joined to the - procpid column of the - pg_stat_activity view to get more - information on the session holding or waiting to hold each lock. + procpid column of the pg_stat_activity + view to get more + information on the session holding or waiting to hold each lock, + for example + +SELECT * FROM pg_locks pl LEFT JOIN pg_stat_activity psa + ON pl.pid = psa.procpid; + Also, if you are using prepared transactions, the - transaction column can be joined to the - transaction column of the - pg_prepared_xacts view to get more - information on prepared transactions that hold locks. + virtualtransaction column can be joined to the + transaction column of the pg_prepared_xacts + view to get more information on prepared transactions that hold locks. (A prepared transaction can never be waiting for a lock, but it continues to hold the locks it acquired while running.) + For example: + +SELECT * FROM pg_locks pl LEFT JOIN pg_prepared_xacts ppx + ON pl.virtualtransaction = '-1/' || ppx.transaction; +