diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2016-10-21 09:34:32 -0400 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2016-10-21 10:42:14 -0400 |
| commit | 1f32d014da5d40406cd5d3996be5283c2fc57b26 (patch) | |
| tree | 81c267cfebe0ca9e00393270e07a62c4d64dc694 /lib/sqlalchemy/orm | |
| parent | 232eec47d13974e9c7bc7bafacba93ddbd59747d (diff) | |
| download | sqlalchemy-1f32d014da5d40406cd5d3996be5283c2fc57b26.tar.gz | |
Ensure .mapper is set on _ColumnEntity
_ColumnEntity didn't seem to have .mapper present, which
due to the way _mapper_zero() worked didn't tend to come
across it. With :ticket:`3608` _mapper_zero() has
been simplified so make sure this is now present.
Also ensure that _select_from_entity is an entity and
not a mapped class, though this does not seem to matter
at the moment.
Fixes: #3836
Change-Id: Id6dae8e700269b97de3b01562edee95ac1e01f80
Diffstat (limited to 'lib/sqlalchemy/orm')
| -rw-r--r-- | lib/sqlalchemy/orm/query.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/sqlalchemy/orm/query.py b/lib/sqlalchemy/orm/query.py index d6a81ffd6..23d33b0d1 100644 --- a/lib/sqlalchemy/orm/query.py +++ b/lib/sqlalchemy/orm/query.py @@ -165,7 +165,7 @@ class Query(object): info = inspect(from_obj) if hasattr(info, 'mapper') and \ (info.is_mapper or info.is_aliased_class): - self._select_from_entity = from_obj + self._select_from_entity = info if set_base_alias: raise sa_exc.ArgumentError( "A selectable (FromClause) instance is " @@ -3940,8 +3940,10 @@ class _ColumnEntity(_QueryEntity): self.entity_zero = _entity if _entity: self.entities = [_entity] + self.mapper = _entity.mapper else: self.entities = [] + self.mapper = None self._from_entities = set(self.entities) else: all_elements = [ @@ -3963,10 +3965,13 @@ class _ColumnEntity(_QueryEntity): ]) if self.entities: self.entity_zero = self.entities[0] + self.mapper = self.entity_zero.mapper elif self.namespace is not None: self.entity_zero = self.namespace + self.mapper = None else: self.entity_zero = None + self.mapper = None supports_single_entity = False |
