Re: deadlock detected, only selects (not select-for-update) - Mailing list pgsql-general

From Gregory Stark
Subject Re: deadlock detected, only selects (not select-for-update)
Date
Msg-id 878x5sub7k.fsf@oxford.xeocode.com
Whole thread Raw
In response to deadlock detected, only selects (not select-for-update)  (Gábor Farkas <gabor@nekomancer.net>)
List pgsql-general
Gábor Farkas <gabor@nekomancer.net> writes:

> BEGIN; SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
> now a lot of selects, but nothing complicated, all of the form of "SELECT x
> FROM y WHERE a=b", with some simple joins, and SELECT DISTINCT and ORDER BY.
> END;
>
> can any of these commands cause the mentioned deadlock?

No, a plain select without a "FOR SHARE" or "FOR UPDATE" can't cause a
deadlock.

One thing to be aware of is that In 7.4 foreign keys can cause spurious
deadlocks. Two updates against different records in a table will lock the
referenced keys. If they lock the referenced keys in different orders then
it's possible for them to deaadlock. This is addressed in more recent versions
of PostgreSQL.


--
  Gregory Stark
  EnterpriseDB          http://www.enterprisedb.com

pgsql-general by date:

Previous
From: cluster
Date:
Subject: Re: Selecting K random rows - efficiently!
Next
From: Tom Lane
Date:
Subject: Re: (Never?) Kill Postmaster?