summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/orm/util.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2015-11-25 15:29:04 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2015-11-25 15:29:04 -0500
commit1202e140b9876cf202c56d2f41bbbb573e15a39d (patch)
tree00d70e89dedbdbf109343e0c667f71c8388c7c94 /lib/sqlalchemy/orm/util.py
parent2a2be6a2ce66ed1040c0345a20f959cbea218859 (diff)
downloadsqlalchemy-1202e140b9876cf202c56d2f41bbbb573e15a39d.tar.gz
- Fixed bug which is actually a regression that occurred between
versions 0.8.0 and 0.8.1, due :ticket:`2714`. The case where joined eager loading needs to join out over a subclass-bound relationship when "with_polymorphic" were also used would fail to join from the correct entity. fixes #3593
Diffstat (limited to 'lib/sqlalchemy/orm/util.py')
-rw-r--r--lib/sqlalchemy/orm/util.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/sqlalchemy/orm/util.py b/lib/sqlalchemy/orm/util.py
index 4351c8dc6..46183a47d 100644
--- a/lib/sqlalchemy/orm/util.py
+++ b/lib/sqlalchemy/orm/util.py
@@ -537,7 +537,11 @@ class AliasedInsp(InspectionAttr):
def _entity_for_mapper(self, mapper):
self_poly = self.with_polymorphic_mappers
if mapper in self_poly:
- return getattr(self.entity, mapper.class_.__name__)._aliased_insp
+ if mapper is self.mapper:
+ return self
+ else:
+ return getattr(
+ self.entity, mapper.class_.__name__)._aliased_insp
elif mapper.isa(self.mapper):
return self
else: