[Modeling-cvs] ProjectModeling/Modeling/DatabaseAdaptors/MySQLAdaptorLayer MySQLSQLExpression.py,1.6
Status: Abandoned
Brought to you by:
sbigaret
|
From: <sbi...@us...> - 2003-08-10 11:59:16
|
Update of /cvsroot/modeling/ProjectModeling/Modeling/DatabaseAdaptors/MySQLAdaptorLayer
In directory sc8-pr-cvs1:/tmp/cvs-serv25553/DatabaseAdaptors/MySQLAdaptorLayer
Modified Files:
MySQLSQLExpression.py
Log Message:
Fixed bug #786217: 'Qualifier LIKE can be case-insensitive' for MySQL
Index: MySQLSQLExpression.py
===================================================================
RCS file: /cvsroot/modeling/ProjectModeling/Modeling/DatabaseAdaptors/MySQLAdaptorLayer/MySQLSQLExpression.py,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** MySQLSQLExpression.py 3 Aug 2003 10:34:14 -0000 1.6
--- MySQLSQLExpression.py 10 Aug 2003 11:59:13 -0000 1.7
***************
*** 271,272 ****
--- 271,297 ----
orderByClause=orderByClause,
lockClause=lockClause)
+
+ def sqlStringForSelector(self, selector, value):
+ """
+ Overrides the default behaviour to ensure that Qualifier operator
+ 'LIKE' matches case-sensitively.
+
+ Note: this is because the SQL LIKE operator is case-insensitive by default
+ in MySQL.
+
+ Returns:
+
+ - if selector is Modeling.Qualifier.QualifierOperatorLike,
+ returns "LIKE BINARY"
+
+ - otherwise returns SQLExpression.sqlStringForSelector()
+
+ See also: SQLExpression.sqlStringForSelector()
+ """
+ from Modeling.Qualifier import QualifierOperatorLike
+ selectorIs=lambda s, selector=selector: s==selector
+ if selectorIs(QualifierOperatorLike):
+ return "LIKE BINARY"
+ else:
+ return SQLExpression.sqlStringForSelector(self, selector, value)
+
|