import sqlalchemy.util as util
import string
-__ALL__ = ['textclause', 'select', 'join', 'and_', 'or_', 'union', 'desc', 'asc', 'outerjoin', 'alias', 'subquery', 'bindparam']
+__ALL__ = ['textclause', 'select', 'join', 'and_', 'or_', 'union', 'desc', 'asc', 'outerjoin', 'alias', 'subquery', 'bindparam', 'sequence']
def desc(column):
return CompoundClause(None, column, "DESC")
def textclause(text, params = None):
return TextClause(text, params)
+def sequence():
+ return Sequence()
+
def _compound_clause(keyword, *clauses):
return CompoundClause(keyword, *clauses)
def execute(self, **params):
e = self._engine()
c = self.compile(e, bindparams = params)
+ # TODO: do pre-execute right here, for sequences, if the compiled object
+ # defines it
+ # TODO: why do we send the params twice, once to compile, once to c.get_params
return e.execute(str(c), c.get_params(**params))
def result(self, **params):
visitor.visit_delete(self)
+class Sequence(BindParamClause):
+ def __init__(self):
+ BindParamClause.__init__(self, 'sequence')
+
+ def accept_visitor(self, visitor):
+ visitor.visit_sequence(self)
+