bunch of examples to add to @compiles docs

Issue #2107 resolved
Mike Bayer repo owner created an issue
class utcnow(expression.FunctionElement):
    type = DateTime()

@compiles(utcnow, 'postgresql')
def _pg_utcnow(element, compiler, **kw):
    return "TIMEZONE('utc', CURRENT_TIMESTAMP)"

@compiles(utcnow, 'mssql')
def _ms_utcnow(element, compiler, **kw):
    return "GETUTCDATE()"

class greatest(expression.FunctionElement):
    type = Numeric()
    name = 'greatest'

@compiles(greatest)
def _default_greatest(element, compiler, **kw):
    return compiler.visit_function(element)

@compiles(greatest, 'mssql')
def _ms_greatest(element, compiler, **kw):
    arg1, arg2 = list(element.clauses)
    return "CASE WHEN %s > %s THEN %s ELSE %s END" % (
        compiler.process(arg1),
        compiler.process(arg2),
        compiler.process(arg1),
        compiler.process(arg2),
    )

class sql_false(expression.ColumnElement):
    pass

@compiles(sql_false, 'postgresql')
def _pg_false(element, compiler, **kw):
    return "false"

@compiles(sql_false, 'mssql')
def _ms_false(element, compiler, **kw):
    return "0"

Comments (2)

  1. Log in to comment