| Bug #28600 | Yen sign and overline ujis conversion change | ||
|---|---|---|---|
| Submitted: | 22 May 2007 16:36 | Modified: | 6 Jul 2007 3:36 | 
| Reporter: | Peter Gulutzan | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Charsets | Severity: | S3 (Non-critical) | 
| Version: | 6.0.1-alpha-debug,5.1.19 | OS: | Linux (SUSE 10 64-bit) | 
| Assigned to: | Alexander Barkov | CPU Architecture: | Any | 
   [30 May 2007 11:25]
   Alexander Barkov        
  The patch is available on dev-bugs@mysql.com: bk commit - 5.1 tree (bar:1.2582) For some reasons it didn't arrive to commits@mysql.com and thus didn't attach to the bug report automatically.
   [1 Jun 2007 13:21]
   Alexander Barkov        
  Pushed into 5.1.20-rpl
   [21 Jun 2007 20:14]
   Bugs System        
  Pushed into 5.1.20-beta
   [6 Jul 2007 3:36]
   Paul DuBois        
  Noted in 5.1.20 changelog. Conversion of U+00A5 YEN SIGN and U+203E OVERLINE from ucs2 to ujis produced incorrect results.
   [17 Oct 2008 6:24]
   Alexander Barkov        
  See the patch which was applied in the "file" section of this bug.


Description: When I convert U+00A5 YEN SIGN to ujis: in earlier versions, result was 0x20, in current version, result is 0x8E5C, the correct result is 0x3f. When I convert U+203E OVERLINE to ujis: in earlier versions, result was 0x20, in current version, result is 0x8E7E, the correct result is 0x3f. How to repeat: mysql> create table tuj (ucs2 char(1) character set ucs2, -> ujis char(1) character set ujis); Query OK, 0 rows affected (0.23 sec) mysql> insert into tuj (ucs2) values (0xffe4); /* FULLWIDTH BROKEN BAR */ Query OK, 1 row affected (0.38 sec) mysql> insert into tuj (ucs2) values (0x00a5); /* YEN SIGN */ Query OK, 1 row affected (0.00 sec) mysql> insert into tuj (ucs2) values (0x203e); /* OVERLINE */ Query OK, 1 row affected (0.00 sec) mysql> insert into tuj (ucs2) values (0x2014); /* EM DASH */ Query OK, 1 row affected (0.00 sec) mysql> insert into tuj (ucs2) values (0xff3c); /* FULLWIDTH REVERSE SOLIDUS */ Query OK, 1 row affected (0.00 sec) mysql> insert into tuj (ucs2) values (0xff5e); /* FULLWIDTH TILDE */ Query OK, 1 row affected (0.00 sec) mysql> insert into tuj (ucs2) values (0x2225); /* PARALLEL TO */ Query OK, 1 row affected (0.00 sec) mysql> insert into tuj (ucs2) values (0xff0d); /* FULLWIDTH HYPHEN-MINUS */ Query OK, 1 row affected (0.00 sec) mysql> insert into tuj (ucs2) values (0xffe0); /* FULLWIDTH CENT SIGN */ Query OK, 1 row affected (0.00 sec) mysql> insert into tuj (ucs2) values (0xffe1); /* FULLWIDTH POUND SIGN */ Query OK, 1 row affected (0.00 sec) mysql> insert into tuj (ucs2) values (0xffe2); /* FULLWIDTH NOT SIGN */ Query OK, 1 row affected (0.00 sec) mysql> update tuj set ujis = ucs2; Query OK, 11 rows affected, 9 warnings (0.07 sec) Rows matched: 11 Changed: 11 Warnings: 0 mysql> select hex(ucs2),hex(ujis) from tuj; +-----------+-----------+ | hex(ucs2) | hex(ujis) | +-----------+-----------+ | FFE4 | 3F | | 00A5 | 8E5C | | 203E | 8E7E | | 2014 | 3F | | FF3C | 3F | | FF5E | 3F | | 2225 | 3F | | FF0D | 3F | | FFE0 | 3F | | FFE1 | 3F | | FFE2 | 3F | +-----------+-----------+ 11 rows in set (0.08 sec)