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

[22 May 2007 16:36] Peter Gulutzan
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)
[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.