Re: Need help understanding pg_locks

From: Florian Pflug <fgp(at)phlo(dot)org>
To: Bruce Momjian <bruce(at)momjian(dot)us>
Cc: Andrew Dunstan <andrew(at)dunslane(dot)net>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Need help understanding pg_locks
Date: 2011-07-14 20:53:15
Message-ID: 5A8BBB3C-3907-451F-9CFD-BF0440366913@phlo.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Jul14, 2011, at 22:18 , Bruce Momjian wrote:
> ! OID of the database in which the lock target exists, or
> ! zero if the lock is a shared object, or
> ! null if the lock is on a transaction ID

For consistency, I think it should say "target" in the second part
of the sentence also now, instead of "lock ... on".

Updated patch attached. I tried to make the descriptions a
bit more consistent, replaced "object" by "target", and
added "targeted by" after the phrase which describes the
locked (or waited-for) object.

best regards,
Florian Pflug

diff --git a/doc/src/sgml/catalogs.sgml b/doc/src/sgml/catalogs.sgml
index d4a1d36..33be5d0 100644
*** a/doc/src/sgml/catalogs.sgml
--- b/doc/src/sgml/catalogs.sgml
***************
*** 6928,6936 ****
<entry><type>oid</type></entry>
<entry><literal><link linkend="catalog-pg-database"><structname>pg_database</structname></link>.oid</literal></entry>
<entry>
! OID of the database in which the object exists, or
! zero if the object is a shared object, or
! null if the object is a transaction ID
</entry>
</row>
<row>
--- 6928,6936 ----
<entry><type>oid</type></entry>
<entry><literal><link linkend="catalog-pg-database"><structname>pg_database</structname></link>.oid</literal></entry>
<entry>
! OID of the database in which the lock target exists, or
! zero if the target is a shared object, or
! null if the target is a transaction ID
</entry>
</row>
<row>
***************
*** 6938,6944 ****
<entry><type>oid</type></entry>
<entry><literal><link linkend="catalog-pg-class"><structname>pg_class</structname></link>.oid</literal></entry>
<entry>
! OID of the relation, or null if the object is not
a relation or part of a relation
</entry>
</row>
--- 6938,6944 ----
<entry><type>oid</type></entry>
<entry><literal><link linkend="catalog-pg-class"><structname>pg_class</structname></link>.oid</literal></entry>
<entry>
! OID of the relation targeted by the lock, or null if the target is not
a relation or part of a relation
</entry>
</row>
***************
*** 6947,6954 ****
<entry><type>integer</type></entry>
<entry></entry>
<entry>
! Page number within the relation, or null if the object
! is not a tuple or relation page
</entry>
</row>
<row>
--- 6947,6954 ----
<entry><type>integer</type></entry>
<entry></entry>
<entry>
! Page number targeted by the lock within the relation,
! or null if the target is not a relation page or tuple
</entry>
</row>
<row>
***************
*** 6956,6962 ****
<entry><type>smallint</type></entry>
<entry></entry>
<entry>
! Tuple number within the page, or null if the object is not a tuple
</entry>
</row>
<row>
--- 6956,6963 ----
<entry><type>smallint</type></entry>
<entry></entry>
<entry>
! Tuple number targeted by the lock within the page,
! or null if the target is not a tuple
</entry>
</row>
<row>
***************
*** 6964,6971 ****
<entry><type>text</type></entry>
<entry></entry>
<entry>
! Virtual ID of a transaction, or null if the object is not a
! virtual transaction ID
</entry>
</row>
<row>
--- 6965,6972 ----
<entry><type>text</type></entry>
<entry></entry>
<entry>
! Virtual ID of the transaction targeted by the lock,
! or null if the target is not a virtual transaction ID
</entry>
</row>
<row>
***************
*** 6973,6979 ****
<entry><type>xid</type></entry>
<entry></entry>
<entry>
! ID of a transaction, or null if the object is not a transaction ID
</entry>
</row>
<row>
--- 6974,6981 ----
<entry><type>xid</type></entry>
<entry></entry>
<entry>
! ID of the transaction targeted by the lock,
! or null if the target is not a transaction ID
</entry>
</row>
<row>
***************
*** 6981,6988 ****
<entry><type>oid</type></entry>
<entry><literal><link linkend="catalog-pg-class"><structname>pg_class</structname></link>.oid</literal></entry>
<entry>
! OID of the system catalog containing the object, or null if the
! object is not a general database object
</entry>
</row>
<row>
--- 6983,6990 ----
<entry><type>oid</type></entry>
<entry><literal><link linkend="catalog-pg-class"><structname>pg_class</structname></link>.oid</literal></entry>
<entry>
! OID of the system catalog containing the lock target, or null if the
! target is not a general database object
</entry>
</row>
<row>
***************
*** 6990,6997 ****
<entry><type>oid</type></entry>
<entry>any OID column</entry>
<entry>
! OID of the object within its system catalog, or null if the
! object is not a general database object.
For advisory locks it is used to distinguish the two key
spaces (1 for an int8 key, 2 for two int4 keys).
</entry>
--- 6992,6999 ----
<entry><type>oid</type></entry>
<entry>any OID column</entry>
<entry>
! OID of the lock target within its system catalog, or null if the
! target is not a general database object.
For advisory locks it is used to distinguish the two key
spaces (1 for an int8 key, 2 for two int4 keys).
</entry>
***************
*** 7001,7010 ****
<entry><type>smallint</type></entry>
<entry></entry>
<entry>
! For a table column, this is the column number (the
<structfield>classid</> and <structfield>objid</> refer to the
! table itself). For all other object types, this column is
! zero. Null if the object is not a general database object
</entry>
</row>
<row>
--- 7003,7013 ----
<entry><type>smallint</type></entry>
<entry></entry>
<entry>
! Column number targeted by the lock (the
<structfield>classid</> and <structfield>objid</> refer to the
! table itself),
! or zero if the target is some other general database object,
! or null if the target is not a general database object
</entry>
</row>
<row>

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Heikki Linnakangas 2011-07-14 20:53:55 Re: WIP: Fast GiST index build
Previous Message Pavel Stehule 2011-07-14 20:47:32 Re: patch: enhanced get diagnostics statement 2