]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commit
Test for short term reference cycles and resolve as many as possible
authorMike Bayer <mike_mp@zzzcomputing.com>
Fri, 27 Dec 2019 20:02:31 +0000 (15:02 -0500)
committerMike Bayer <mike_mp@zzzcomputing.com>
Mon, 30 Dec 2019 19:12:58 +0000 (14:12 -0500)
commit47f0aa47e716a3e220e7b42854961c72eb30fbb3
tree33a6b7db9e4540f343ff398be1aea66048ffd247
parent458e9a6e4a4436719e014015fdcb4ec744b53c16
Test for short term reference cycles and resolve as many as possible

Added test support and repaired a wide variety of unnecessary reference
cycles created for short-lived objects, mostly in the area of ORM queries.

For the 1.3 backport, includes the prefix_anon_map() optimization
from 1.4 / master which inlines the anonymous symbol generation
into a single object.   This removes a cycle from the compiler
that otherwise results in a signficantly higher number of
unreachable cycles.

Fixes: #5056
Change-Id: Ifd93856eba550483f95f9ae63d49f36ab068b85a
(cherry picked from commit 492930ed572de5f5550d514bc2ca52a57f108350)
23 files changed:
doc/build/changelog/unreleased_13/5050.rst [deleted file]
doc/build/changelog/unreleased_13/5056.rst [new file with mode: 0644]
lib/sqlalchemy/orm/interfaces.py
lib/sqlalchemy/orm/mapper.py
lib/sqlalchemy/orm/path_registry.py
lib/sqlalchemy/orm/query.py
lib/sqlalchemy/orm/relationships.py
lib/sqlalchemy/orm/strategies.py
lib/sqlalchemy/orm/strategy_options.py
lib/sqlalchemy/orm/util.py
lib/sqlalchemy/sql/annotation.py
lib/sqlalchemy/sql/compiler.py
lib/sqlalchemy/sql/elements.py
lib/sqlalchemy/sql/selectable.py
lib/sqlalchemy/sql/util.py
lib/sqlalchemy/sql/visitors.py
lib/sqlalchemy/util/__init__.py
lib/sqlalchemy/util/_collections.py
test/aaa_profiling/test_memusage.py
test/base/test_utils.py
test/orm/test_options.py
test/orm/test_utils.py
test/sql/test_generative.py