summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy
diff options
context:
space:
mode:
authormike bayer <mike_mp@zzzcomputing.com>2018-06-25 23:48:52 -0400
committerGerrit Code Review <gerrit@ci.zzzcomputing.com>2018-06-25 23:48:52 -0400
commitd5ee9957f9027ecec37178d3327f01de0f8c7b96 (patch)
tree6617d476f721bc6e3e0ab084be79895a37722df3 /lib/sqlalchemy
parent441bf421cf88966393edcf5ace5a2836096022e9 (diff)
parentf683ddf16b34513d9f589202f2cdff9d0e0fad6b (diff)
downloadsqlalchemy-d5ee9957f9027ecec37178d3327f01de0f8c7b96.tar.gz
Merge "Look up adapter info for previous left side in chained query.join()"
Diffstat (limited to 'lib/sqlalchemy')
-rw-r--r--lib/sqlalchemy/orm/query.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/sqlalchemy/orm/query.py b/lib/sqlalchemy/orm/query.py
index 74d3079af..98747c680 100644
--- a/lib/sqlalchemy/orm/query.py
+++ b/lib/sqlalchemy/orm/query.py
@@ -2244,6 +2244,13 @@ class Query(object):
left_entity = onclause._parententity
+ alias = self._polymorphic_adapters.get(left_entity, None)
+ # could be None or could be ColumnAdapter also
+ if isinstance(alias, ORMAdapter) and \
+ alias.mapper.isa(left_entity):
+ left_entity = alias.aliased_class
+ onclause = getattr(left_entity, onclause.key)
+
prop = onclause.property
if not isinstance(onclause, attributes.QueryableAttribute):
onclause = prop