Thomas Swan <tswan@idigx.com> writes:
>>> When a SELECT FOR UPDATE query is executed, are the row level locks on a
>>> table acquired in any specific order
Nope, just whatever order the chosen plan happens to visit the tuples
in.
> I had remembered several readings on ordered locking as a method to
> prevent deadlocks, and associated that with select for update
> methodology. In theory if you aquired locks in the following order, for
> each table/relation (in oid order) get rows/tuples (in oid order), you
> could help avoid deadlock by never gaining a lock ahead of someone
> else.
Hmmm .... this would only help for situations where all the locks of
interest are grabbed in a single scan. I suppose that has some
usefulness, but it can hardly be said to eliminate deadlocks. I kinda
doubt it's worth the trouble.
regards, tom lane