Re: Wrong FOR UPDATE lock type - Mailing list pgsql-hackers

From Jan Wieck
Subject Re: Wrong FOR UPDATE lock type
Date
Msg-id 200012041918.OAA17820@jupiter.jw.home
Whole thread Raw
In response to RE: Wrong FOR UPDATE lock type  ("Mikheev, Vadim" <vmikheev@SECTORBASE.COM>)
Responses Re: Wrong FOR UPDATE lock type  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
Mikheev, Vadim wrote:
> >     I'm  about  99.666667% sure that the lock type choosen in the
> >     FOR UPDATE case (line  511  of  parse_relation.c)  should  be
> >     RowExclusiveLock  instead  of  RowShareLock.   Actually I get
> >     "Deadlock risk" debug messages when selecting FOR UPDATE  and
> >     then really UPDATE.
>
> http://www.postgresql.org/users-lounge/docs/6.5/user/x3116.htm
>
> RowShareLock
> Acquired by SELECT FOR UPDATE and LOCK TABLE for IN ROW SHARE MODE
> statements.
>
> Conflicts with ExclusiveLock and AccessExclusiveLock modes.
   Tom,
   IIRC  the  "Deadlock risk" debug message is from you. I think   it must get a little smarter. IMHO an application
thatwant's   to  UPDATE  something  in  a  transaction but must SELECT the   row(s) first to do it's own calculation on
them, should  use   SELECT FOR UPDATE. Is that debug output really appropriate in   this case (it raises from
RowShareLock to  RowExclusiveLock   because  of  the  UPDATE  of the previous FOR UPDATE selected   row)?
 


Jan

--

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#================================================== JanWieck@Yahoo.com #




pgsql-hackers by date:

Previous
From: Thomas Lockhart
Date:
Subject: [Fwd: Re: [CORE] Going Beta on Monday ...]
Next
From: Larry Rosenman
Date:
Subject: Re: [Fwd: Re: [CORE] Going Beta on Monday ...]