> My question is basically - why does the nested-transaction need to fail > immediately if it encounters a lock?
It may be because the code is concerned that it is the parent transaction itself which holds the lock, and if we waited for the lock we'd have a self deadlock which would never be resolved. That is: - parent transaction does something which causes it to hold a lock on the system table. - parent transaction initiates a nested transaction which needs to lock the system table. - nested transaction can't get the lock, blocks waiting for it. - parent transaction never proceeds, because it's waiting for the nested transaction. thanks, bryan
