On Thu, Apr 06, 2006 at 03:36:33PM -0400, Emi Lu wrote: > How to check whether a table is locked? You can monitor locks by querying the pg_locks view. http://www.postgresql.org/docs/8.0/interactive/monitoring-locks.html http://www.postgresql.org/docs/8.0/interactive/view-pg-locks.html Only a few operations lock entire tables; for more information see the Concurrency Control chapter in the documentation. http://www.postgresql.org/docs/8.0/interactive/mvcc.html > Is there a way that I can find all deadlocks under postgresql 8.0.1 ? Are you sure you mean "deadlocks"? Deadlock occurs when transaction A holds a lock that transaction B wants and transaction B holds a lock that transaction A wants; PostgreSQL detects this condition and aborts one of the transactions, allowing the other to continue. By default this happens after one second (see the deadlock_timeout setting). Perhaps you want to see pending or blocked lock attempts, i.e., locks that have been requested but are not yet acquired because another transaction holds a conflicting lock. If that's the case then look for rows in pg_locks where "granted" is false. -- Michael Fuhr