> I was thinking SET because UPDATE does an auto-lock.
Optimal would imho be a SET that gives a maximum amount of time in seconds
the client is willing to wait for any lock. But I liked the efficiency of Henryk's code.
>
> > Bruce Momjian <pgman@candle.pha.pa.us> writes:
> > > I can imagine some people wanting this. However, 7.1 has new deadlock
> > > detection code, so I would you make a 7.1 version and send it over. We
> > > can get it into 7.2.
> >
> > I object strongly to any such "feature" in the low-level form that
> > Henryk proposes, because it would affect *ALL* locking. Do you really
> > want all your other transactions to go belly-up if, say, someone vacuums
> > pg_class?
Yes, if a non batch client already blocked for over x seconds. Of course a more
sophisticated client can send querycancel() but that involves a more complicated
program (threads, timer ...).
> >
> > A variant of LOCK TABLE that explicitly requests a timeout might make
> > sense, though.
I do not think that a solution for one particular lock is very helpful. If your dml then
blocks on some unforseen lock (parse, plan ...) , the client is in exactly the situation
it tried to avoid in the first place.
Andreas