[daisy] Even more DB2 porting

Aaron.Digulla at Globus.ch Aaron.Digulla at Globus.ch
Thu Sep 14 11:16:44 CDT 2006


Hello,

With a lot of hacks and workarounds, I finally managed to setup the 
repository and get the wiki running. I'll post a patch to JIRA for comment 
tomorrow.

Right now, there is only one thing left which I can't figure out: The 
query

select id where name LIKE '%word%' limit 50

finds documents in MySQL which have "word", "Word" or "WORD" in the name. 
On DB2, this doesn't work. The actual SQL which is generated in my case is 
this:

SELECT   Distinct documents.id,
         document_variants.branch_id,
         document_variants.lang_id
FROM     documents 
         left join document_variants on (documents.id = 
document_variants.doc_id) 
         left outer join document_versions on (documents.id = 
document_versions.doc_id and document_variants.branch_id = 
document_versions.branch_id and document_variants.lang_id = 
document_versions.lang_id and document_variants.liveversion_id = 
document_versions.id)
WHERE    ( ( document_versions.name LIKE '%word%') )
AND      document_variants.retired = 'false'
AND      document_variants.liveversion_id != -1

I would expect to see "UCASE(document_versions.name) LIKE '%WORD%'" in 
there to make the query case-insensitive. How does this work in MySQL? I 
checked JdbcHelper but the method getUpperCaseFunction() is never used 
(plus the fact that the search string is not converted either :-/).

Any ideas?

Regards,

-- 
Aaron Digulla



More information about the daisy mailing list