diff options
-rw-r--r-- | doc/build/changelog/unreleased_14/5074.rst | 23 |
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` + |