]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commit
add recursion check for with_loader_criteria() option
authorMike Bayer <mike_mp@zzzcomputing.com>
Wed, 22 Dec 2021 20:33:11 +0000 (15:33 -0500)
committerMike Bayer <mike_mp@zzzcomputing.com>
Wed, 22 Dec 2021 20:46:48 +0000 (15:46 -0500)
commitc66c6d1aeff92f838740b7745a9c2a47852949d6
tree8e11c5c57c39db78c26e2d6e7c91f9755f5f8fe5
parentab75ec2adb35b249ae6e700f965eb52c0340da69
add recursion check for with_loader_criteria() option

Fixed recursion overflow which could occur within ORM statement compilation
when using either the :func:`_orm.with_loader_criteria` feature or the the
:meth:`_orm.PropComparator.and_` method within a loader strategy in
conjunction with a subquery which referred to the same entity being altered
by the criteria option, or loaded by the loader strategy.  A check for
coming across the same loader criteria option in a recursive fashion has
been added to accommodate for this scenario.

Fixes: #7491
Change-Id: I8701332717c45a21948ea4788a3058c0fbbf03a7
doc/build/changelog/unreleased_14/7491.rst [new file with mode: 0644]
lib/sqlalchemy/orm/context.py
lib/sqlalchemy/orm/util.py
lib/sqlalchemy/sql/annotation.py
test/orm/test_relationship_criteria.py