On Thu, Feb 23, 2006 at 02:10:22PM -0500, Carlos Oliva wrote:
> The ExclusiveLock seems to be granted on the transaction id instead of
> tables. So I am guessing that, for a connection, the first lock is granted
> to the transaction id and later other locks are granted on specific tables.
Right. Your output shows that the relation locks are AccessShareLock,
which is what the documentation says an ordinary SELECT acquires.
Other operations acquire stronger locks, depending on what they
need to prevent other transactions from doing until this transaction
completes. Most of the time you don't need to worry about any of
this unless a transaction appears to be blocked (stuck); then you
can query pg_locks and look for locks where the granted column is
false and diagnose from there.
--
Michael Fuhr