added label() function to Select class, useable only with select

that has scalar=True
This commit is contained in:
Mike Bayer
2006-11-27 19:42:33 +00:00
parent db2a8e8fb3
commit 95dc215913
2 changed files with 16 additions and 1 deletions
+2
View File
@@ -1,6 +1,8 @@
0.3.2
- added keywords for EXCEPT, INTERSECT, EXCEPT ALL, INTERSECT ALL
[ticket:247]
- added label() function to Select class, when scalar=True is used
to create a scalar subquery.
0.3.1
- Engine/Pool:
+14 -1
View File
@@ -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):