Hello,
documentation about advisory locks in the pg_locks view
<http://developer.postgresql.org/pgdocs/postgres/view-pg-locks.html>
is incorrect/incomplete: the space specifier field is objsubid, not
objid, and there is no information about how the key is stored.
=> select pg_advisory_lock(1111, 2222);
=> select pg_advisory_lock((3333 * 2^32 + 4444)::bigint);
=> select classid, objid, objsubid from pg_locks where locktype='advisory';
classid | objid | objsubid
---------+-------+----------
3333 | 4444 | 1
1111 | 2222 | 2
I've only checked the classid/objid/objsubid fields, don't know about
the other ones.
Proposed patch attached.
-- Daniele