diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2022-06-23 11:15:19 -0400 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2022-06-23 11:15:19 -0400 |
| commit | 4553f24980c0a23685afdb9ef6958b79f4b22e70 (patch) | |
| tree | 9de907ce3d890defd973ab48eb513989eba755e5 /lib/sqlalchemy/orm | |
| parent | c7519e94b5f7bfd9cee908f80c793d628bc37a1c (diff) | |
| download | sqlalchemy-4553f24980c0a23685afdb9ef6958b79f4b22e70.tar.gz | |
refine _include_fn to not include sibling mappers
Fixed regression caused by :ticket:`8064` where a particular check for
column correspondence was made too liberal, resulting in incorrect
rendering for some ORM subqueries such as those using
:meth:`.PropComparator.has` or :meth:`.PropComparator.any` in conjunction
with joined-inheritance queries that also use legacy aliasing features.
Fixes: #8162
Change-Id: Ib1fff33aa219aadf178348dd571bec1e691e606d
Diffstat (limited to 'lib/sqlalchemy/orm')
| -rw-r--r-- | lib/sqlalchemy/orm/util.py | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/sqlalchemy/orm/util.py b/lib/sqlalchemy/orm/util.py index 0d4d4a837..317abe2b4 100644 --- a/lib/sqlalchemy/orm/util.py +++ b/lib/sqlalchemy/orm/util.py @@ -475,7 +475,8 @@ class ORMAdapter(sql_util.ColumnAdapter): def _include_fn(self, elem): entity = elem._annotations.get("parentmapper", None) - return not entity or entity.common_parent(self.mapper) + + return not entity or entity.isa(self.mapper) or self.mapper.isa(entity) class AliasedClass( |
