Teach AbortOutOfAnyTransaction to clean up partially-started transactions.
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 29 May 2012 03:57:14 +0000 (23:57 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 29 May 2012 03:57:14 +0000 (23:57 -0400)
commitcc2469b0925812424efc8aa24234fc3090a5e85e
tree3aa25f1a5cde0fbbd6005cc735ef737fbd0e23eb
parent2791f2180d8e7c469fac2a4d88fc449689e4c970
Teach AbortOutOfAnyTransaction to clean up partially-started transactions.

AbortOutOfAnyTransaction failed to do anything if the state it saw on
entry corresponded to failing partway through StartTransaction.  I fixed
AbortCurrentTransaction to cope with that case way back in commit
60b2444cc3ba037630c9b940c3c9ef01b954b87b, but evidently overlooked that
AbortOutOfAnyTransaction should do likewise.

Back-patch to all supported branches.  It's not clear that this omission
has any more-than-cosmetic consequences, but it's also not clear that it
doesn't, so back-patching seems the least risky choice.
src/backend/access/transam/xact.c