]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commit
Don't apply aliasing + adaption for simple relationship joins
authorMike Bayer <mike_mp@zzzcomputing.com>
Thu, 19 Dec 2019 02:50:24 +0000 (21:50 -0500)
committerMike Bayer <mike_mp@zzzcomputing.com>
Thu, 19 Dec 2019 15:19:29 +0000 (10:19 -0500)
commit7e9f273835ac68df894568ba4292bfbc74ce187b
tree96d3f1590ff45b90a791f92c622737ed3e89fcfb
parent255a6ee18b9d68b5150f1793e0a318d8ccd913bf
Don't apply aliasing + adaption for simple relationship joins

Identified a performance issue in the system by which a join is constructed
based on a mapped relationship.   The clause adaption system would be used
for the majority of join expressions including in the common case where no
adaptation is needed.   The conditions under which this adaptation occur
have been refined so that average non-aliased joins along a simple
relationship without a "secondary" table use about 70% less function calls.

Change-Id: Ifbe04214576e5a9fac86ca80c1dc7145c27cd50a
doc/build/changelog/unreleased_13/rel_join.rst [new file with mode: 0644]
lib/sqlalchemy/orm/relationships.py
lib/sqlalchemy/orm/util.py
lib/sqlalchemy/testing/profiling.py
test/aaa_profiling/test_orm.py
test/ext/test_serializer.py
test/profiles.txt