Bug #27697 Non-western-collation searches fail if index exists
Submitted: 7 Apr 2007 13:00 Modified: 20 May 2007 5:37
Reporter: Hakan Küçükyılmaz Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Falcon storage engine Severity:S2 (Serious)
Version: OS:Linux
Assigned to: Kevin Lewis CPU Architecture:Any

[7 Apr 2007 13:00] Hakan Küçükyılmaz
Description:
JStar can't handle some character sets and collations.
This is just a sample.
Inspired by ctype*.test.

How to repeat:
mysql> create table i (i char(1) character set utf8 collate utf8_turkish_ci) engine=jstar;
Query OK, 0 rows affected (0.01 sec)

mysql> insert into i values ('i'),('ı');
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> select * from i where i = 'i';
+------+
| i    |
+------+
| i    |
| ı    |
+------+
2 rows in set (0.00 sec)

mysql> create index i on i (i);
Query OK, 2 rows affected (0.03 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> select * from i where i = 'i';
+------+
| i    |
+------+
| i    |
+------+
1 row in set (0.00 sec)
[7 Apr 2007 13:00] Hakan Küçükyılmaz
I confirm that the search for 'i' works correctly now. But a search for 'I' fails.
I'm opening the bug again (if there's a different standard procedure, correct me).

How to repeat:

set names utf8;
create table i (i char(1) character set utf8 collate utf8_turkish_ci) engine=jstar;
insert into i values ('i'),('ı');
select * from i where i = 'i';
create index i on i (i);
select * from i where i = 'i';
select * from i where i = 'I';
[7 Apr 2007 13:28] Hakan Küçükyılmaz
[15:27] root@test>SELECT * FROM i where i = 'I';
+------+
| i    |
+------+
| ı   |
+------+
1 row in set (0.00 sec)

[15:27] root@test>CREATE INDEX i ON i (i);
Query OK, 2 rows affected (0.03 sec)
Records: 2  Duplicates: 0  Warnings: 0

[15:27] root@test>SELECT * FROM i where i = 'I';
Empty set (0.02 sec)
[17 Apr 2007 6:01] Hakan Küçükyılmaz
Test case is falcon_bug_27697.test which is failing.
[9 May 2007 19:09] Kevin Lewis
Fixed with recent code changes for handling MySQL character sets.
[14 May 2007 17:26] Hakan Küçükyılmaz
test case falcon_bug_27697 passes now:

TEST                           RESULT         TIME (ms)
-------------------------------------------------------

falcon_bug_27697               [ pass ]             88
-------------------------------------------------------
Stopping All Servers
All 1 tests were successful.
The servers were restarted 1 times
Spent 0.088 seconds actually executing testcases
[20 May 2007 5:37] MC Brown
A note has been added to the 6.0.1 changelog.