Today I stumbled over an unexpected behavior of savepoints. As far as I'm able to understand savepoints they mark a well defined state in the middle of a transaction. A savepoint is invalid if its transaction is committed or another savepoint is created. Well nesting savepoints would be a nice feature but I can live w/o it.

Something else strikes me. Why am I unable to roll back to the same savepoint multiple times?

Pseudo code example

>>> sp = transaction.savepoint()
>>> dosomething()
>>> sp.valid
>>> sp.rollback()
>>> domore()
>>> sp.valid
>>> sp.rollback()

From my point of view I can't see a reason why the ZODB forbids a second rolback to the savepoint.


For more information about ZODB, see the ZODB Wiki:

ZODB-Dev mailing list  -

Reply via email to