Re: [GENERAL] advisory locks: documentation hint and feature request - Mailing list pgsql-docs
From | Bruce Momjian |
---|---|
Subject | Re: [GENERAL] advisory locks: documentation hint and feature request |
Date | |
Msg-id | 200803061850.m26Ioaw26516@momjian.us Whole thread Raw |
List | pgsql-docs |
Marc Mamin wrote: > doing this, I missed an information in the documentation that would be > useful to add: > > > pg_locks columns definition > --------------------------- > > current definition: > > objid : OID of the object within its system catalog, > or NULL if the object is not a general database object > > to add: "For advisory locks it is used to distinguish the two key > spaces (one int8 or two int4 keys) > > > Table 9-56. Advisory Lock Functions (8.3 Beta) > ----------------------------------- > current: (note that these two key spaces do not overlap) > > to add: "; The two key spaces are separated on the column objid in the > pg_locks view" > I have added your suggested changes to the docs with the attached patch. Thanks. > Moreover I missed some function that would allow a cleaner > implementation of my features > (reducing the need to query the pg_locks view) > > For example: > > --current shared lock count (owned / all) > pg_advisory_lock_shared_count_my(key bigint) > pg_advisory_lock_shared_count_all(key bigint) > > > --enforce exclusive locks so that they cannot be stacked > pg_try_advisory_lock_single(key bigint) Sorry, I am afraid they would not have general-enough usefulness. -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://postgres.enterprisedb.com + If your life is a hard drive, Christ can be your backup. + Index: doc/src/sgml/catalogs.sgml =================================================================== RCS file: /cvsroot/pgsql/doc/src/sgml/catalogs.sgml,v retrieving revision 2.161 diff -c -c -r2.161 catalogs.sgml *** doc/src/sgml/catalogs.sgml 31 Jan 2008 18:40:02 -0000 2.161 --- doc/src/sgml/catalogs.sgml 6 Mar 2008 18:48:54 -0000 *************** *** 5691,5697 **** <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 </entry> </row> <row> --- 5691,5700 ---- <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 (<literal>1</> for an int8 key, <literal>2</> for two ! int4 keys). </entry> </row> <row> Index: doc/src/sgml/func.sgml =================================================================== RCS file: /cvsroot/pgsql/doc/src/sgml/func.sgml,v retrieving revision 1.422 diff -c -c -r1.422 func.sgml *** doc/src/sgml/func.sgml 3 Mar 2008 18:09:02 -0000 1.422 --- doc/src/sgml/func.sgml 6 Mar 2008 18:48:58 -0000 *************** *** 12378,12384 **** <para> <function>pg_advisory_lock</> locks an application-defined resource, which can be identified either by a single 64-bit key value or two ! 32-bit key values (note that these two key spaces do not overlap). If another session already holds a lock on the same resource, the function will wait until the resource becomes available. The lock is exclusive. Multiple lock requests stack, so that if the same resource --- 12378,12385 ---- <para> <function>pg_advisory_lock</> locks an application-defined resource, which can be identified either by a single 64-bit key value or two ! 32-bit key values (note that these two key spaces do not overlap). ! The key type is specified in <literal>pg_locks.objid</>. If another session already holds a lock on the same resource, the function will wait until the resource becomes available. The lock is exclusive. Multiple lock requests stack, so that if the same resource
pgsql-docs by date: