> > Is it possible to do a nonblocking lock? That is,
> > I want several clients to execute,
> >
> > begin
> > if table A is locked
> > then
> > go around doing stuff on other tables
> > else
> > lock A and do stuff on A
> > endif
> >
> > the problem is, if I use normal lock, then
> > after one client has locked and is doing stuff on A
> > the other one will block and thus it won't be able
> > to go around doing stuff on other tables. Is it
> > possible to do a nonblocking lock that will just
> > fail if the table is locked already?
>
> Try with user locks. You can find the code in contrib/userlocks.
Yes, this is the proper PostgreSQL solution.
-- Bruce Momjian | http://www.op.net/~candle maillist@candle.pha.pa.us | (610)
853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill,
Pennsylvania19026