summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2006-01-08 07:12:19 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2006-01-08 07:12:19 +0000
commitd2d181b6c87043d2558eee4d6bc77ca54d6b0c5f (patch)
tree58a7628e253199eef09e4b99d3eb16cea794a5fd /lib/sqlalchemy/sql.py
parent2eb45ceba3ef86b54c54c104a5a1a1282ac5a7db (diff)
downloadsqlalchemy-d2d181b6c87043d2558eee4d6bc77ca54d6b0c5f.tar.gz
added count() to table, from objects
Diffstat (limited to 'lib/sqlalchemy/sql.py')
-rw-r--r--lib/sqlalchemy/sql.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/lib/sqlalchemy/sql.py b/lib/sqlalchemy/sql.py
index e08c644f4..ade96ae4b 100644
--- a/lib/sqlalchemy/sql.py
+++ b/lib/sqlalchemy/sql.py
@@ -488,6 +488,8 @@ class FromClause(Selectable):
return "FromClause(%s, %s)" % (repr(self.id), repr(self.from_name))
def accept_visitor(self, visitor):
visitor.visit_fromclause(self)
+ def count(self, whereclause=None, **params):
+ return select([func.count(1).label('count')], whereclause, from_obj=[self], **params)
def join(self, right, *args, **kwargs):
return Join(self, right, *args, **kwargs)
def outerjoin(self, right, *args, **kwargs):
@@ -698,7 +700,9 @@ class Function(ClauseList, CompareMixin):
return BinaryClause(self, obj, operator)
def _make_proxy(self, selectable, name = None):
return self
-
+ def select(self):
+ return select([self])
+
class BinaryClause(ClauseElement, CompareMixin):
"""represents two clauses with an operator in between"""
def __init__(self, left, right, operator, type=None):
@@ -791,7 +795,9 @@ class Join(FromClause):
def __init__(self, id, join):
FromClause.__init__(self, from_key=id)
self.join = join
-
+ def _exportable_columns(self):
+ return []
+
def _process_from_dict(self, data, asfrom):
for f in self.onclause._get_from_objects():
data[f.id] = f
@@ -1008,7 +1014,8 @@ class TableImpl(FromClause):
data.setdefault(f.id, f)
if asfrom:
data[self.id] = self.table
-
+ def count(self, whereclause=None, **params):
+ return select([func.count(1).label('count')], whereclause, from_obj=[self.table], **params)
def join(self, right, *args, **kwargs):
return Join(self.table, right, *args, **kwargs)
def outerjoin(self, right, *args, **kwargs):