diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-09-18 13:34:04 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-09-18 13:34:04 -0400 |
commit | c5c8cdf3b4d7dc456cfef29ea04b2b7300060c7a (patch) | |
tree | a5f05fd65195e395800bf74c825b3fa9c35f389a /lib/sqlalchemy/sql/expression.py | |
parent | 003149c504149849c679a60a1f346a0f0393dce0 (diff) | |
download | sqlalchemy-c5c8cdf3b4d7dc456cfef29ea04b2b7300060c7a.tar.gz |
- as_scalar(), label() can be called on a selectable
which contains a Column that is not yet named.
[ticket:1862]
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.""" |