[ 
https://issues.apache.org/jira/browse/DERBY-1748?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12844459#action_12844459
 ] 

Knut Anders Hatlen commented on DERBY-1748:
-------------------------------------------

Thanks for providing the patch, Gunnar! This looks like a nice improvement. 
We'd also need some regression tests to verify that the functionality works 
before we can check it in. If you want to take a stab at it, you could take a 
look at the existing collation tests and see if they can be extended with tests 
for this new feature. They can be found under 
java/testing/org/apache/derbyTesting/functionTests/tests/lang and are called 
CollationTest and CollationTest2. The wiki contains more info about running and 
writing Derby regression tests: 
http://wiki.apache.org/db-derby/DerbyJUnitTesting

You should probably also sign an ICLA (Individual Contributor License 
Agreement) and mail/fax it to Apache. See this wiki page: 
http://wiki.apache.org/db-derby/DerbyDev

I have one question about the patch. There's a call to Collator.getInstance() 
in BasicDatabase.getCollator() which is not touched by the patch. Do we need to 
add a call to setStrength() there as well?

> Global case insensitive setting
> -------------------------------
>
>                 Key: DERBY-1748
>                 URL: https://issues.apache.org/jira/browse/DERBY-1748
>             Project: Derby
>          Issue Type: Improvement
>          Components: SQL
>            Reporter: Terry
>         Attachments: collation-strength.diff
>
>
> By default MySQL is case insensitive in its string comparisons, as you can 
> see from the MySQL docs shown below. Similar functionality is available in 
> Sybase iAnywhere and in SQLServer. I'd like the same to be true for Derby.
> What, I wonder, are chances of that?
> I am aware that functions could be used to force comparisons in upper case 
> but that subverts the indexes and makes searches unacceptably long.
> If you were to ask people you might find that this is a feature whose 
> abscence is causing many to look elsewhere.
> thanks for all the great work,
> Terry
> The MySQL Docs say:
> -------- start quote
>  By default, MySQL searches are not case sensitive (although there are some 
> character sets that are never case insensitive, such as czech). This means 
> that if you search with col_name LIKE 'a%', you get all column values that 
> start with A or a. If you want to make this search case sensitive, make sure 
> that one of the operands has a case sensitive or binary collation. For 
> example, if you are comparing a column and a string that both have the latin1 
> character set, you can use the COLLATE operator to cause either operand to 
> have the latin1_general_cs or latin1_bin collation. For example:
> col_name COLLATE latin1_general_cs LIKE 'a%'
> col_name LIKE 'a%' COLLATE latin1_general_cs
> col_name COLLATE latin1_bin LIKE 'a%'
> col_name LIKE 'a%' COLLATE latin1_bin
> If you want a column always to be treated in case-sensitive fashion, declare 
> it with a case sensitive or binary collation. See Section 13.1.5, "CREATE 
> TABLE Syntax". 
>     By default, the search is performed in case-insensitive fashion. In MySQL 
> 4.1 and up, you can make a full-text search by using a binary collation for 
> the indexed columns. For example, a column that has a character set of latin1 
> can be assigned a collation of latin1_bin to make it case sensitive for 
> full-text searches.
> --------------- end quote

-- 
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