diff options
Diffstat (limited to 'lib/sqlalchemy/sql/expression.py')
-rw-r--r-- | lib/sqlalchemy/sql/expression.py | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/lib/sqlalchemy/sql/expression.py b/lib/sqlalchemy/sql/expression.py index 70d5f13fc..5df3b8794 100644 --- a/lib/sqlalchemy/sql/expression.py +++ b/lib/sqlalchemy/sql/expression.py @@ -3685,8 +3685,7 @@ class _ScalarSelect(_Grouping): def __init__(self, element): self.element = element - cols = list(element.c) - self.type = cols[0].type + self.type = element._scalar_type() @property def columns(self): @@ -3737,7 +3736,10 @@ class CompoundSelect(_SelectBaseMixin, FromClause): self.selects.append(s.self_group(self)) _SelectBaseMixin.__init__(self, **kwargs) - + + def _scalar_type(self): + return self.selects[0]._scalar_type() + def self_group(self, against=None): return _FromGrouping(self) @@ -3910,6 +3912,11 @@ class Select(_SelectBaseMixin, FromClause): return froms + def _scalar_type(self): + elem = self._raw_columns[0] + cols = list(elem._select_iterable) + return cols[0].type + @property def froms(self): """Return the displayed list of FromClause elements.""" |