summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/orm/query.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2015-03-11 14:46:52 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2015-03-11 14:46:52 -0400
commitb815e9483319b93f98bef11c7d47378441f78d21 (patch)
tree00a1e0a6e015cd12a386b9c67922b1f2bf7926e4 /lib/sqlalchemy/orm/query.py
parent71b8df2e5319773008e83f784543a716a80d7511 (diff)
downloadsqlalchemy-b815e9483319b93f98bef11c7d47378441f78d21.tar.gz
- Added a new entry ``"entity"`` to the dictionaries returned by
:attr:`.Query.column_descriptions`. This refers to the primary ORM mapped class or aliased class that is referred to by the expression. Compared to the existing entry for ``"type"``, it will always be a mapped entity, even if extracted from a column expression, or None if the given expression is a pure core expression. references #3320
Diffstat (limited to 'lib/sqlalchemy/orm/query.py')
-rw-r--r--lib/sqlalchemy/orm/query.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/sqlalchemy/orm/query.py b/lib/sqlalchemy/orm/query.py
index 65c72e5e1..c6fdf479e 100644
--- a/lib/sqlalchemy/orm/query.py
+++ b/lib/sqlalchemy/orm/query.py
@@ -2558,18 +2558,21 @@ class Query(object):
'type':User,
'aliased':False,
'expr':User,
+ 'entity': User
},
{
'name':'id',
'type':Integer(),
'aliased':False,
'expr':User.id,
+ 'entity': User
},
{
'name':'user2',
'type':User,
'aliased':True,
- 'expr':user_alias
+ 'expr':user_alias,
+ 'entity': user_alias
}
]
@@ -2579,7 +2582,10 @@ class Query(object):
'name': ent._label_name,
'type': ent.type,
'aliased': getattr(ent, 'is_aliased_class', False),
- 'expr': ent.expr
+ 'expr': ent.expr,
+ 'entity':
+ ent.entity_zero.entity if ent.entity_zero is not None
+ else None
}
for ent in self._entities
]