summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/orm
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2022-06-23 11:15:19 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2022-06-23 11:15:19 -0400
commit4553f24980c0a23685afdb9ef6958b79f4b22e70 (patch)
tree9de907ce3d890defd973ab48eb513989eba755e5 /lib/sqlalchemy/orm
parentc7519e94b5f7bfd9cee908f80c793d628bc37a1c (diff)
downloadsqlalchemy-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.py3
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(