[Checkins] SVN: transaction/branches/elro-savepoint-release/transaction/ Following discussion on sqlalchemy list it was noted that postgresql invalidates subsequent savepoints on release. Make our behaviour match.
Laurence Rowe
l at lrowe.co.uk
Sat Jan 16 14:22:01 EST 2010
Log message for revision 108181:
Following discussion on sqlalchemy list it was noted that postgresql invalidates subsequent savepoints on release. Make our behaviour match.
Changed:
U transaction/branches/elro-savepoint-release/transaction/_transaction.py
U transaction/branches/elro-savepoint-release/transaction/tests/savepoint.txt
-=-
Modified: transaction/branches/elro-savepoint-release/transaction/_transaction.py
===================================================================
--- transaction/branches/elro-savepoint-release/transaction/_transaction.py 2010-01-16 17:42:22 UTC (rev 108180)
+++ transaction/branches/elro-savepoint-release/transaction/_transaction.py 2010-01-16 19:22:01 UTC (rev 108181)
@@ -274,6 +274,7 @@
# Remove and invalidate a savepoint. This is what's needed on release
# of `savepoint`.
def _remove_and_invalidate(self, savepoint):
+ self._remove_and_invalidate_after(savepoint)
savepoint.transaction = None # invalidate
del self._savepoint2index[savepoint]
Modified: transaction/branches/elro-savepoint-release/transaction/tests/savepoint.txt
===================================================================
--- transaction/branches/elro-savepoint-release/transaction/tests/savepoint.txt 2010-01-16 17:42:22 UTC (rev 108180)
+++ transaction/branches/elro-savepoint-release/transaction/tests/savepoint.txt 2010-01-16 19:22:01 UTC (rev 108181)
@@ -228,16 +228,14 @@
...
InvalidSavepointError
-Subsequent savepoints remain valid:
+Subsequent savepoints are invalidated:
- >>> dm['bob-balance'] = 400.0
- >>> dm['bob-balance']
- 400.0
>>> savepoint3.rollback()
- >>> dm['bob-balance']
- 300.0
+ Traceback (most recent call last):
+ ...
+ InvalidSavepointError
-As do previous savepoints:
+Previous savepoints continue to be valid:
>>> savepoint1.rollback()
>>> dm['bob-balance']
More information about the checkins
mailing list