Transaction: transaction.begin() - synchronizer newTransaction() method called inconsistently
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
ZODB |
New
|
Undecided
|
Unassigned |
Bug Description
For a synchronizer, the newTransaction() method is only called when an explicit call to transaction.begin() is made, and not when a new transaction is implicitly started by a call to transaction.get(). These two cases (explicitly vs implicitly begun transactions) should be treated the same, and newTransaction() should be called in both cases.
Some comments from Jim Fulton on zodb-dev on resolution:
"
Really, ``begin` and ``abort`` are equivalent. It might be better if
there wasn't a ``begin`` method, as it's missleading. One should be an
alias for the other. I'd be for deprecating ``begin``. The call to
``_new_
new transaction is created, and ``begin`` should be made an alias for
``abort``.
"
FTR I was wrong. :)
See: https:/ /groups. google. com/forum/ #!topic/ python- transaction/ dPcjNoKR_ q4