diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-11-27 19:42:33 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-11-27 19:42:33 +0000 |
| commit | 95dc215913ceede05bcfdd75b58cc8a626be4e60 (patch) | |
| tree | 8cb892aceff71ec2becbdf1632d62d2936f1f5c8 /lib/sqlalchemy | |
| parent | db2a8e8fb300bda79a16dadc084df87f13dc161b (diff) | |
| download | sqlalchemy-95dc215913ceede05bcfdd75b58cc8a626be4e60.tar.gz | |
added label() function to Select class, useable only with select
that has scalar=True
Diffstat (limited to 'lib/sqlalchemy')
| -rw-r--r-- | lib/sqlalchemy/sql.py | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/lib/sqlalchemy/sql.py b/lib/sqlalchemy/sql.py index b3d61dc7e..17c0a25f7 100644 --- a/lib/sqlalchemy/sql.py +++ b/lib/sqlalchemy/sql.py @@ -1494,6 +1494,9 @@ class Select(_SelectBaseMixin, FromClause): self._raw_columns.append(column) + if self.is_scalar and not hasattr(self, 'type'): + self.type = column.type + # if the column is a Select statement itself, # accept visitor column.accept_visitor(self.__correlator) @@ -1502,7 +1505,17 @@ class Select(_SelectBaseMixin, FromClause): for f in column._get_from_objects(): f.accept_visitor(self.__correlator) self._process_froms(column, False) - + def _make_proxy(self, selectable, name): + if self.is_scalar: + return self._raw_columns[0]._make_proxy(selectable, name) + else: + raise exceptions.InvalidRequestError("Not a scalar select statement") + def label(self, name): + if not self.is_scalar: + raise exceptions.InvalidRequestError("Not a scalar select statement") + else: + return label(name, self) + def _exportable_columns(self): return self._raw_columns def _proxy_column(self, column): |
