[Checkins]
SVN: z3c.sqlalchemy/branches/sessionflushevents/src/z3c/sqlalchemy/base.py
fix transaction/session management
Godefroid Chapelle
gotcha at bubblenet.be
Fri Oct 5 09:31:59 EDT 2007
Log message for revision 80645:
fix transaction/session management
Changed:
U z3c.sqlalchemy/branches/sessionflushevents/src/z3c/sqlalchemy/base.py
-=-
Modified: z3c.sqlalchemy/branches/sessionflushevents/src/z3c/sqlalchemy/base.py
===================================================================
--- z3c.sqlalchemy/branches/sessionflushevents/src/z3c/sqlalchemy/base.py 2007-10-05 13:30:03 UTC (rev 80644)
+++ z3c.sqlalchemy/branches/sessionflushevents/src/z3c/sqlalchemy/base.py 2007-10-05 13:31:58 UTC (rev 80645)
@@ -156,47 +156,36 @@
def __init__(self, session, id):
self.session = session
self._id = id
- self.transaction = None
def abort(self, trans):
- if self.transaction is not None:
- self.transaction.rollback()
+ self.session.rollback()
self.session.clear()
session_cache.set(**{'last_session_%s' % self._id : None})
def _flush(self):
# check if the session contains something flushable
if self.session.new or self.session.deleted or self.session.dirty:
-
- # Check if a session-bound transaction has been created so far.
- # If not, create a new transaction
- if self.transaction is None:
- self.transaction = self.session.create_transaction()
-
# Flush
notify(BeforeSessionFlushEvent(self.session))
self.session.flush()
notify(SessionFlushedEvent(self.session))
def commit(self, trans):
- self._flush()
+ self.session.commit()
def tpc_begin(self, trans):
- pass
+ self._flush()
def tpc_vote(self, trans):
- self._flush()
+ pass
def tpc_finish(self, trans):
- if self.transaction is not None:
- self.transaction.commit()
self.session.clear()
session_cache.set(**{'last_session_%s' % self._id : None})
def tpc_abort(self, trans):
- if self.transaction is not None:
- self.transaction.rollback()
+ self.session.rollback()
self.session.clear()
session_cache.set(**{'last_session_%s' % self._id : None})
@@ -277,7 +266,6 @@
by SQLAlchemyDA and therefore it is not part of the
public API.
"""
-
last_connection, = connection_cache.get('last_connection')
# return cached connection if we are within the same transaction
More information about the Checkins
mailing list