diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2020-01-02 12:48:23 -0500 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2020-01-03 13:30:53 -0500 |
commit | 0a8b11bb6528c38dc441caadc6eb2d25046fc376 (patch) | |
tree | 90f739e15b296ff8ab54f48a7df9806849c58d83 /lib/sqlalchemy/testing/engines.py | |
parent | 5881fd274015af3de37f2ff0f91ff6a7c61c1540 (diff) | |
download | sqlalchemy-0a8b11bb6528c38dc441caadc6eb2d25046fc376.tar.gz |
Implement explicit autobegin step for Session
The :class:`.Session` object no longer initates a
:class:`.SessionTransaction` object immediately upon construction or after
the previous transaction is closed; instead, "autobegin" logic now
initiates the new :class:`.SessionTransaction` on demand when it is next
needed. Rationale includes to remove reference cycles from a
:class:`.Session` that has been closed out, as well as to remove the
overhead incurred by the creation of :class:`.SessionTransaction` objects
that are often discarded immediately. This change affects the behavior of
the :meth:`.SessionEvents.after_transaction_create` hook in that the event
will be emitted when the :class:`.Session` first requires a
:class:`.SessionTransaction` be present, rather than whenever the
:class:`.Session` were created or the previous :class:`.SessionTransaction`
were closed. Interactions with the :class:`.Engine` and the database
itself remain unaffected.
Fixes: #5074
Change-Id: I00b656eb5ee03d87104257a214214617aacae16c
Diffstat (limited to 'lib/sqlalchemy/testing/engines.py')
0 files changed, 0 insertions, 0 deletions