def compile_clause(c, compiler, tables, format_args):
if isinstance(c, BindParameter) and isinstance(c.value, (
str, int, re._pattern_type, ZdbLiteral)):
if isinstance(c.value, str):
return "\"%s\"" % escape_tokens(c.value)
elif isinstance(c.value, re._pattern_type):
return "\"%s\"" % c.value.pattern
elif isinstance(c.value, ZdbLiteral):
return c.value.literal
else:
return c.value
elif isinstance(c, (True_, False_)):
return str(type(c) == True_).lower()
elif isinstance(c, TextClause):
return c.text
elif isinstance(c, BinaryExpression):
return compile_binary_clause(c, compiler, tables, format_args)
elif isinstance(c, BooleanClauseList):
return compile_boolean_clause_list(c, compiler, tables, format_args)
elif isinstance(c, Column):
return compile_column_clause(c, compiler, tables, format_args)
elif isinstance(c, Grouping):
return compile_grouping(c, compiler, tables, format_args)
elif isinstance(c, Null):
return "NULL"
raise ValueError("Unsupported clause")
评论列表
文章目录