summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/testing/engines.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2020-01-02 12:48:23 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2020-01-03 13:30:53 -0500
commit0a8b11bb6528c38dc441caadc6eb2d25046fc376 (patch)
tree90f739e15b296ff8ab54f48a7df9806849c58d83 /lib/sqlalchemy/testing/engines.py
parent5881fd274015af3de37f2ff0f91ff6a7c61c1540 (diff)
downloadsqlalchemy-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