Re: lock problem when dont commit - Mailing list pgsql-jdbc

From Tom Lane
Subject Re: lock problem when dont commit
Date
Msg-id 15716.1109813069@sss.pgh.pa.us
Whole thread Raw
In response to Re: lock problem when dont commit  (Dave Cramer <pg@fastcrypt.com>)
Responses Re: lock problem when dont commit
List pgsql-jdbc
Dave Cramer <pg@fastcrypt.com> writes:
> Tom Lane wrote:
>> Maybe a conflict on referenced foreign-key rows?

> can you explain how that happens?

When you insert or update a row in a table that has an FK reference,
it takes out a row-level lock on the referenced row in the master table.
This is needed to prevent someone else from deleting the master row
before commit.  (Since the someone else can't see your uncommitted row,
nothing but a lock could stop them from thinking it's OK to remove the
master row.)

So if two sessions are trying to insert rows that reference the same
master row, they conflict --- because the only type of row-level lock
we have at the moment is exclusive.  I believe Alvaro is looking into
supporting shared row-level locks for 8.1, which'd make this problem
go away.

            regards, tom lane

pgsql-jdbc by date:

Previous
From: Dave Cramer
Date:
Subject: Re: lock problem when dont commit
Next
From: Mican Bican
Date:
Subject: Re: lock problem when dont commit