diff --git a/sqlbase7_sa/sqlbase7_sa05.py b/sqlbase7_sa/sqlbase7_sa05.py index 2b98c83..83a5b79 100644 --- a/sqlbase7_sa/sqlbase7_sa05.py +++ b/sqlbase7_sa/sqlbase7_sa05.py @@ -25,16 +25,23 @@ from sqlalchemy import types, Column, PrimaryKeyConstraint from sqlalchemy.sql.compiler import OPERATORS -from sqlalchemy.sql import operators +from sqlalchemy.sql import operators as sql_operators -from sqlbase7_sa.sqlbase7 import SQLBase7Dialect +from sqlbase7_sa.sqlbase7 import SQLBase7Compiler, SQLBase7Dialect -OPERATORS[operators.ilike_op] = lambda x, y, escape=None: "@lower(%s) LIKE @lower(%s)" % (x, y) + (escape and ' ESCAPE \'%s\'' % escape or '') +class SQLBase7Compiler_SA05(SQLBase7Compiler): + + operators = SQLBase7Compiler.operators.copy() + operators.update({ + sql_operators.ilike_op: lambda x, y, escape=None: "@lower(%s) LIKE @lower(%s)" % (x, y) + (escape and ' ESCAPE \'%s\'' % escape or ''), + }) class SQLBase7Dialect_SA05(SQLBase7Dialect): + statement_compiler = SQLBase7Compiler_SA05 + @classmethod def dbapi(cls): import pyodbc