@compiles(InsertFromSelect)
def visit_insert_from_select(element, compiler, **kw):
return "INSERT INTO %s (%s)" % (
- compiler.process(element.table, asfrom=True),
- compiler.process(element.select)
+ compiler.process(element.table, asfrom=True, **kw),
+ compiler.process(element.select, **kw)
)
insert = InsertFromSelect(t1, select([t1]).where(t1.c.x>5))
@compiles(MyConstraint)
def compile_my_constraint(constraint, ddlcompiler, **kw):
+ kw['literal_binds'] = True
return "CONSTRAINT %s CHECK (%s)" % (
constraint.name,
ddlcompiler.sql_compiler.process(
- constraint.expression, literal_binds=True)
+ constraint.expression, **kw)
)
Above, we add an additional flag to the process step as called by
@compiles(coalesce)
def compile(element, compiler, **kw):
- return "coalesce(%s)" % compiler.process(element.clauses)
+ return "coalesce(%s)" % compiler.process(element.clauses, **kw)
@compiles(coalesce, 'oracle')
def compile(element, compiler, **kw):
if len(element.clauses) > 2:
raise TypeError("coalesce only supports two arguments on Oracle")
- return "nvl(%s)" % compiler.process(element.clauses)
+ return "nvl(%s)" % compiler.process(element.clauses, **kw)
* :class:`~sqlalchemy.schema.DDLElement` - The root of all DDL expressions,
like CREATE TABLE, ALTER TABLE, etc. Compilation of ``DDLElement``