diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2018-10-17 10:42:50 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2018-10-17 11:50:52 -0400 |
commit | d080aae128b081e6870dae325cb90202329784b4 (patch) | |
tree | 3c149e636f2a18885c1572918d9963c9b2592e8b /lib/sqlalchemy/orm/dynamic.py | |
parent | b4d42a84e22652c16b914a2f76421718be913027 (diff) | |
download | sqlalchemy-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.py | 5 |
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 |