From d080aae128b081e6870dae325cb90202329784b4 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Wed, 17 Oct 2018 10:42:50 -0400 Subject: 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 --- lib/sqlalchemy/orm/dynamic.py | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'lib') 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 -- cgit v1.2.1