summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/orm/dynamic.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2018-10-17 10:42:50 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2018-10-17 11:50:52 -0400
commitd080aae128b081e6870dae325cb90202329784b4 (patch)
tree3c149e636f2a18885c1572918d9963c9b2592e8b /lib/sqlalchemy/orm/dynamic.py
parentb4d42a84e22652c16b914a2f76421718be913027 (diff)
downloadsqlalchemy-d080aae128b081e6870dae325cb90202329784b4.tar.gz
Add prop.secondary to FROM for dynamic loader
Fixed bug where "dynamic" loader needs to explicitly set the "secondary" table in the FROM clause of the query, to suit the case where the secondary is a join object that is otherwise not pulled into the query from its columns alone. Fixes: #4349 Change-Id: I397f62abd5603efa4fb273586d0f772bf8c8fbbf
Diffstat (limited to 'lib/sqlalchemy/orm/dynamic.py')
-rw-r--r--lib/sqlalchemy/orm/dynamic.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/sqlalchemy/orm/dynamic.py b/lib/sqlalchemy/orm/dynamic.py
index 73d9ef3bb..3c59f61d7 100644
--- a/lib/sqlalchemy/orm/dynamic.py
+++ b/lib/sqlalchemy/orm/dynamic.py
@@ -219,6 +219,10 @@ class AppenderMixin(object):
mapper = object_mapper(instance)
prop = mapper._props[self.attr.key]
+
+ if prop.secondary is not None:
+ self._set_select_from([prop.secondary], False)
+
self._criterion = prop._with_parent(
instance,
alias_secondary=False)
@@ -284,6 +288,7 @@ class AppenderMixin(object):
query = sess.query(self.attr.target_mapper)
query._criterion = self._criterion
+ query._from_obj = self._from_obj
query._order_by = self._order_by
return query