Robert Haas <robertmh...@gmail.com> writes: > That's not what "running" means to me. Running means it's started and > hasn't yet committed or rolled back.
A subxact definitely can't be considered committed until its topmost parent commits. However, it could be known to be rolled back before its parent. IIUC, the current situation is that we don't take advantage of the latter case but just wait for the topmost parent. One thing we need to be pretty careful of here is to not break the promise of atomic commit. At topmost commit, all subxacts must appear committed simultaneously. It's not quite clear to me whether we need a similar guarantee in the rollback case. It seems like we shouldn't, but maybe I'm missing something, in which case maybe the current behavior is correct? regards, tom lane