diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-01-08 07:12:19 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-01-08 07:12:19 +0000 |
commit | d2d181b6c87043d2558eee4d6bc77ca54d6b0c5f (patch) | |
tree | 58a7628e253199eef09e4b99d3eb16cea794a5fd /lib/sqlalchemy/sql.py | |
parent | 2eb45ceba3ef86b54c54c104a5a1a1282ac5a7db (diff) | |
download | sqlalchemy-d2d181b6c87043d2558eee4d6bc77ca54d6b0c5f.tar.gz |
added count() to table, from objects
Diffstat (limited to 'lib/sqlalchemy/sql.py')
-rw-r--r-- | lib/sqlalchemy/sql.py | 13 |
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): |