Re: FOR SHARE vs FOR UPDATE locks

From: "Heikki Linnakangas" <heikki(at)enterprisedb(dot)com>
To: "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: "Alvaro Herrera" <alvherre(at)commandprompt(dot)com>, "Simon Riggs" <simon(at)2ndquadrant(dot)com>, <pgsql-hackers(at)postgreSQL(dot)org>
Subject: Re: FOR SHARE vs FOR UPDATE locks
Date: 2006-12-01 17:46:31
Message-ID: 45706A77.8030503@enterprisedb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-docs pgsql-hackers

Tom Lane wrote:
> Actually ... wait a minute. The proposed hack covers the case of
> SELECT FOR SHARE followed by SELECT FOR UPDATE within a subtransaction.
> But what about SELECT FOR SHARE followed by an actual UPDATE (or DELETE)?
>
> We certainly don't want to mark the UPDATE/DELETE as having been carried
> out by the upper transaction, but there's no way we can record the
> UPDATE while still remembering the previous share-lock.
>
> So I think I'm back to the position that we should throw an error here.

Yeah. Even without a real update, I just figured you can't upgrade a
shared lock held by an arbitrarily chosen parent to an exclusive lock.
If that subxid aborts, and if any of the parents of that subtransaction
held the shared lock, that lock would be released incorrectly. Which is
essentially the same problem we began with.

Let's throw an error for now. We have to come back to this in 8.3, I think.

--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com

In response to

Responses

Browse pgsql-docs by date

  From Date Subject
Next Message Tom Lane 2006-12-01 17:58:31 Re: FOR SHARE vs FOR UPDATE locks
Previous Message Tom Lane 2006-12-01 17:40:46 Re: FOR SHARE vs FOR UPDATE locks

Browse pgsql-hackers by date

  From Date Subject
Next Message Thomas H. 2006-12-01 17:54:36 Re: 8.2 Beta3-> RC1 upgrade
Previous Message Timasmith 2006-12-01 17:43:57 postgresql roadmap for horizontal scalability?