View Single Post

   
  #1 (permalink)  
Old 04-16-2008, 02:28 AM
Merlin Moncure
 
Posts: n/a
Default Re: lock - feedback

> > Have you looked at contrib\userlock? With it, you can simulate
> > pessimistic locks with a non-blocking result code.
> >
> > Merlin
> >
> >
> >

> contrib/userlock? where i can find something about this? in the manual

i

http://developer.postgresql.org/cvsw...l/contrib/user
lock/README.user_locks?rev=1.3;content-type=text%2Fplain

> can't find something ?!?!
> mhm what is with the "lost update" problem, can i solve it with it?!?!


probably. However, in many cases proper use of transactions is more
appropriate. This will be even easier to do when we get proper
assertions.

> i can't visualize how it can works?

select user_write_lock(oid) from my_table where value = x;
returns 1 on success, 0 on failure.

just be careful...
select user_write_lock(oid) from my_table where value = x order by y
limit 1;
can acquire more locks than you might think since the table has to be
materialized to do the order.

better to write:

select user_write_lock(oid) from
(
select oid, * from my_table where value = x order by y limit 1;
)

also, don't use oid . In my applications, I make a domain type called
'cuid' which pulls nextval() from a public sequence. Put that into your
tables and lock on it. Just watch for dump/restore.

Merlin


---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

http://archives.postgresql.org

Reply With Quote