[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