[ 
https://issues.apache.org/jira/browse/CAY-1210?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12980706#action_12980706
 ] 

Andrus Adamchik commented on CAY-1210:
--------------------------------------

As recap of this thread on the dev list: 
http://markmail.org/message/pakh6dyzfsi5d2hr I am documenting a solution that 
we'll implement in 3.1:

* LIKE and LIKE IGNORE CASE processing in SelectQuery and EJBQLQuery should be 
abstracted in a strategy interface 
(org.apache.cayenne.access.jdbc.LikeClauseGeneratorStrategy)
* Such strategy should be provided by DbAdapter.
* A strategy can be overridden via RuntimeProperties service (meaning this can 
be done either via DI or from command line). 
* A name for the strategy property override is 
"cayenne.runtime.likeclausegenerator"



> mysql does not use index for case insensitive searches
> ------------------------------------------------------
>
>                 Key: CAY-1210
>                 URL: https://issues.apache.org/jira/browse/CAY-1210
>             Project: Cayenne
>          Issue Type: Improvement
>          Components: Database integration
>            Reporter: Ari Maniatis
>            Assignee: Ari Maniatis
>             Fix For: 3.1M1
>
>
> When performing a case insensitive search Cayenne spits out SQL which looks 
> like this
> SELECT .... WHERE upper(name) LIKE upper("fred")
> This prevents any index being used for the search. Since mysql already 
> performed case insensitive searches on text fields we need to suppress the 
> 'upper' functions being used in these situations. All searches on these 
> fields are already case insensitive.
> http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to