Tim Nelson <timnels@gmail.com> writes:
> New to Postgres and I have never seen this condition.  We are getting test
> applications hanging on SELECT statements with a RowExclusiveLock.  How can
> a SELECT cause a RowExclusiveLock?
>  relname          |  pid  |       mode       | granted
> --------------------------+-------+------------------+---------
>  sales_transaction_detail |   392 | RowExclusiveLock | t
>  sales_transaction_detail | 19077 | RowExclusiveLock | t
>  sales_transaction_header | 32661 | RowExclusiveLock | t
>  sales_transaction_header |   392 | RowExclusiveLock | t
>  sales_transaction_header | 19077 | RowExclusiveLock | t
Hm, all those entries are showing granted = t, implying that they are
not blocked.  I think you are mis-querying pg_locks or mis-interpreting
the results.
            regards, tom lane