[Sqlalchemy-commits] commit/sqlalchemy: 3 new changesets
Brought to you by:
zzzeek
|
From: Bitbucket <com...@bi...> - 2014-01-13 00:44:57
|
3 new commits in sqlalchemy: https://bitbucket.org/zzzeek/sqlalchemy/commits/86c3855c9baf/ Changeset: 86c3855c9baf Branch: None User: zzzeek Date: 2014-01-12 23:15:41 Summary: - bump up how many args for "named arg style" to four Affected #: 1 file https://bitbucket.org/zzzeek/sqlalchemy/commits/c91fd822bc98/ Changeset: c91fd822bc98 Branch: None User: zzzeek Date: 2014-01-12 23:34:20 Summary: - add new event PoolEvents.invalidate(). allows interception of invalidation events including auto-invalidation, which is useful both for tests here as well as detecting failure conditions within the "reset" or "close" cases. - rename the argument for PoolEvents.reset() to dbapi_connection and connection_record to be consistent with everything else. - add new documentation sections on invalidation, including auto-invalidation and the invalidation process within the pool. - add _ConnectionFairy and _ConnectionRecord to the pool documentation. Establish docs for common _ConnectionFairy/_ConnectionRecord methods and accessors and have PoolEvents docs refer to _ConnectionRecord, since it is passed to all events. Rename a few _ConnectionFairy methods that are actually private to pool such as _checkout(), _checkin() and _checkout_existing(); there should not be any external code calling these Affected #: 6 files https://bitbucket.org/zzzeek/sqlalchemy/commits/9c64607572a0/ Changeset: 9c64607572a0 Branch: None User: zzzeek Date: 2014-01-13 01:43:13 Summary: - :class:`.Connection` now associates a new :class:`.RootTransaction` or :class:`.TwoPhaseTransaction` with its immediate :class:`._ConnectionFairy` as a "reset handler" for the span of that transaction, which takes over the task of calling commit() or rollback() for the "reset on return" behavior of :class:`.Pool` if the transaction was not otherwise completed. This resolves the issue that a picky transaction like that of MySQL two-phase will be properly closed out when the connection is closed without an explicit rollback or commit (e.g. no longer raises "XAER_RMFAIL" in this case - note this only shows up in logging as the exception is not propagated within pool reset). This issue would arise e.g. when using an orm :class:`.Session` with ``twophase`` set, and then :meth:`.Session.close` is called without an explicit rollback or commit. The change also has the effect that you will now see an explicit "ROLLBACK" in the logs when using a :class:`.Session` object in non-autocommit mode regardless of how that session was discarded. Thanks to Jeff Dairiki and Laurence Rowe for isolating the issue here. [ticket:2907] Affected #: 5 files Repository URL: https://bitbucket.org/zzzeek/sqlalchemy/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. |