Bug #8610 The ucs2_turkish_ci collation fails with upper('i')

Submitted: 18 Feb 2005 21:10 Modified: 22 Jun 2005 0:09
Reporter: Peter Gulutzan Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version:5.0.3-alpha-debug OS:Linux (SUSE 9.2)
Assigned to: Alexander Barkov CPU Architecture:Any

[18 Feb 2005 21:10] Peter Gulutzan
Description:
If s1 has a Turkish collation, then UPPER('i') should return 'dotted I'.
If character set is latin5 collate latin5_turkish_ci, it does.
If character set is ucs2 collate ucs2_turkish_ci, it does not.
If character set is utf8 collate utf8_turkish_ci, it does not.

How to repeat:
mysql> create table tu (s1 char(2) character set ucs2 collate ucs2_turkish_ci);
Query OK, 0 rows affected (0.15 sec)

mysql> insert into tu values (0x0130) /* Capital I with dot above */;
Query OK, 1 row affected (0.00 sec)

mysql> insert into tu values (0x0131) /* Small i with no dot */;
Query OK, 1 row affected (0.00 sec)

mysql> insert into tu values (0x0049) /* I */;
Query OK, 1 row affected (0.00 sec)

mysql> insert into tu values (0x0069) /* i */;
Query OK, 1 row affected (0.00 sec)

mysql> select hex(s1), hex(upper(s1)) from tu;
+---------+----------------+
| hex(s1) | hex(upper(s1)) |
+---------+----------------+
| 0130    | 0130           |
| 0131    | 0049           |
| 0049    | 0049           |
| 0069    | 0049           |
+---------+----------------+
4 rows in set (0.00 sec)
[18 Feb 2005 21:18] Jorge del Conde
Verified w/5.0.3 from our bk
[28 Mar 2005 9:50] Alexander Barkov
It is relatively simple to fix it for UCS2.
It's harder to fix it for UTF8, as lower and
upper letters have different lengths. 

I suggest to move this problem from bug system to Worklog,
together with German UPPER('SHARP S') problem.

Moreover, nobody complains. So this is something of a low priority.
[9 Apr 2005 17:55] Jim Winstead
The characters in question are:

İ - LATIN CAPITAL LETTER I WITH DOT ABOVE
ı - LATIN SMALL LETTER DOTLESS I

(Sorry, just using this as an excuse to verify UTF-8 support of bugs.mysql.com.)
[6 Jun 2005 11:57] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/internals/25639
[6 Jun 2005 12:00] Alexander Barkov
Fixed in 5.0.7.
Won't fix in 4.1.x.
[22 Jun 2005 0:09] Mike Hillyer
Documented in 5.0.7 changelog:

<listitem><para>The ucs2_turkish_ci collation fails with upper('i').
    UPPER/LOWER now can return a string with different length. (Bug #8610)</para></listitem>

Portions of this website are copyright © 2001, 2002 The PHP Group

Page generated in 0.041 sec. using MySQL 8.4.7-u6-cloud

Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.