Fixed operator overloading in SA05 dialect; was doing so globally instead of dialect-local.
This commit is contained in:
parent
416a710dff
commit
4369f88c54
1 changed files with 10 additions and 3 deletions
|
@ -25,16 +25,23 @@
|
||||||
|
|
||||||
from sqlalchemy import types, Column, PrimaryKeyConstraint
|
from sqlalchemy import types, Column, PrimaryKeyConstraint
|
||||||
from sqlalchemy.sql.compiler import OPERATORS
|
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):
|
class SQLBase7Dialect_SA05(SQLBase7Dialect):
|
||||||
|
|
||||||
|
statement_compiler = SQLBase7Compiler_SA05
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def dbapi(cls):
|
def dbapi(cls):
|
||||||
import pyodbc
|
import pyodbc
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue