Suppose that two simultaneous transactions execute the following queries on a Postgresql DB:
Transaction A:
SELECT * FROM mytable WHERE id IN (1
From http://www.postgresql.org/docs/9.1/static/explicit-locking.html:
PostgreSQL automatically detects deadlock situations and resolves them by aborting one of the transactions involved
That page uses an example involving UPDATEs, which are equivalent to SELECT ... FOR UPDATE with respect to locking.