summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy')
-rw-r--r--lib/sqlalchemy/orm/query.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/sqlalchemy/orm/query.py b/lib/sqlalchemy/orm/query.py
index 605486203..43dde9fc0 100644
--- a/lib/sqlalchemy/orm/query.py
+++ b/lib/sqlalchemy/orm/query.py
@@ -1611,11 +1611,15 @@ class _ColumnEntity(_QueryEntity):
if isinstance(column, basestring):
column = sql.literal_column(column)
+ self._result_label = column.name
elif isinstance(column, (attributes.QueryableAttribute, mapper.Mapper._CompileOnAttr)):
+ self._result_label = column.impl.key
column = column.__clause_element__()
elif not isinstance(column, sql.ColumnElement):
raise sa_exc.InvalidRequestError("Invalid column expression '%r'" % column)
-
+ else:
+ self._result_label = getattr(column, 'key', None)
+
if not hasattr(column, '_label'):
column = column.label(None)
@@ -1656,7 +1660,7 @@ class _ColumnEntity(_QueryEntity):
def proc(context, row):
return row[column]
- return (proc, getattr(column, 'name', None))
+ return (proc, self._result_label)
def setup_context(self, query, context):
column = self._resolve_expr_against_query_aliases(query, self.column, context)