summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/build/changelog/unreleased_14/5074.rst23
1 files changed, 23 insertions, 0 deletions
diff --git a/doc/build/changelog/unreleased_14/5074.rst b/doc/build/changelog/unreleased_14/5074.rst
new file mode 100644
index 000000000..3b6b951c4
--- /dev/null
+++ b/doc/build/changelog/unreleased_14/5074.rst
@@ -0,0 +1,23 @@
+.. change::
+ :tags: bug, orm
+ :tickets: 5074
+
+ 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.
+
+ .. seealso::
+
+ :ref:`change_5074`
+