I'm monitoring locks using this query:
SELECT pgsa.procpid, pgsa.current_query, pgsa.query_start,
pgc.relname, pgl.mode, pgl.granted
FROM pg_catalog.pg_class pgc, pg_locks AS pgl, pg_stat_activity AS pgsa
WHERE pgl.pid = pgsa.procpid
AND current_query <> '<IDLE>'
AND pgl.relation = pgc.oid
ORDER BY pgsa.query_start DESC;
which was built as an extension of this information:
http://archives.postgresql.org/pgsql-novice/2004-08/msg00291.php
Interestingly, I'm seeing evidence that SELECTs are occasionally
taking Row Exclusive locks. Should this surprise me?
PostgreSQL 8.0.3 on i686-pc-linux-gnu, compiled by GCC 2.95.4
--
Thomas F. O'Connell
Database Architecture and Programming
Co-Founder
Sitening, LLC
http://www.sitening.com/
110 30th Avenue North, Suite 6
Nashville, TN 37203-6320
615-260-0005 (cell)
615-469-5150 (office)
615-469-5151 (fax)