Bug #11266 Big5 Unicode fix
Submitted: 12 Jun 2005 5:32 Modified: 23 Jun 2005 16:51
Reporter: [ name withheld ] Email Updates:
Status: Duplicate Impact on me:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version:4.1,4.2 OS:Linux (Linux)
Assigned to: CPU Architecture:Any

[12 Jun 2005 5:32] [ name withheld ]
Description:
Dear All,

I find the big5 unicode lost CP950 some code, pls add.

How to repeat:
Pls using my fix can fix, pls comment.

Suggested fix:
--- mysql-4.1.7/strings/ctype-big5.c.orig       2004-12-07 08:51:46.000000000 +0800
+++ mysql-4.1.7/strings/ctype-big5.c    2004-12-07 09:17:55.000000000 +0800
@@ -1688,7 +1688,7 @@ static uint16 tab_big5_uni0[]={
 0x2467,0x2468,0x2469,0x2474,0x2475,0x2476,0x2477,0x2478,
 0x2479,0x247A,0x247B,0x247C,0x247D};
 
-/* page 1 0xC940-0xF9D5 */
+/* page 1 0xC940-0xF9DC bugfix CP950 code */
 static uint16 tab_big5_uni1[]={
 0x4E42,0x4E5C,0x51F5,0x531A,0x5382,0x4E07,0x4E0C,0x4E47,
 0x4E8D,0x56D7,0xFA0C,0x5C6E,0x5F73,0x4E0F,0x5187,0x4E0E,
@@ -3244,12 +3244,13 @@ static uint16 tab_big5_uni1[]={
 0x9E17,0x9F48,0x6207,0x6B1E,0x7227,0x864C,0x8EA8,0x9482,
 0x9480,0x9481,0x9A69,0x9A68,0x9B2E,0x9E19,0x7229,0x864B,
 0x8B9F,0x9483,0x9C79,0x9EB7,0x7675,0x9A6B,0x9C7A,0x9E1D,
-0x7069,0x706A,0x9EA4,0x9F7E,0x9F49,0x9F98};
+0x7069,0x706A,0x9EA4,0x9F7E,0x9F49,0x9F98,0x88CF,0x92B9,
+0x7CA7,0x58BB,0x6052,0x7881,0x5AFA};
 
 static int func_big5_uni_onechar(int code){
   if ((code>=0xA140)&&(code<=0xC7FC))
     return(tab_big5_uni0[code-0xA140]);
-  if ((code>=0xC940)&&(code<=0xF9D5))
+  if ((code>=0xC940)&&(code<=0xF9DC))
     return(tab_big5_uni1[code-0xC940]);
   return(0);
 }
@@ -3878,7 +3879,7 @@ static uint16 tab_uni_big57[]={
 0xE54D,0xE552,     0,0xE54E,     0,0xE551,0xBC5C,     0,
 0xBEA5,0xBC5B,     0,0xE54A,0xE550,     0,0xBC5A,0xE54F,
      0,0xE54C,     0,0xBC58,     0,     0,     0,     0,
-     0,     0,0xE94D,     0,0xE94F,0xE94A,0xBEC1,0xE94C,
+     0,     0,0xE94D,0xF9D9,0xE94F,0xE94A,0xBEC1,0xE94C,
      0,0xBEC0,0xE94E,     0,     0,0xBEC3,0xE950,0xBEC2,
 0xE949,0xE94B,     0,     0,     0,     0,0xC0A5,0xECCC,
      0,0xC0A4,0xECCD,0xC0A3,0xECCB,0xC0A2,0xECCA,     0,
@@ -3950,7 +3951,7 @@ static uint16 tab_uni_big57[]={
 0xE175,0xB9DE,0xE174,0xB9E4,     0,0xE16D,0xB9DF,     0,
 0xE17B,0xB9E0,0xE16F,0xE172,0xE177,0xE171,0xE16C,     0,
      0,     0,     0,0xE173,0xE555,0xBC61,0xE558,0xE557,
-0xE55A,0xE55C,     0,0xBC5F,     0,0xE556,     0,0xE554,
+0xE55A,0xE55C,0xF9DC,0xBC5F,     0,0xE556,     0,0xE554,
      0,0xE55D,0xE55B,0xE559,     0,0xE55F,     0,0xE55E,
 0xBC63,0xBC5E,     0,0xBC60,0xBC62,     0,     0,0xE560,
 0xE957,     0,     0,0xE956,0xE955,     0,0xE958,0xE951,
@@ -4121,7 +4122,7 @@ static uint16 tab_uni_big57[]={
      0,0xCEC0,     0,     0,     0,     0,     0,     0,
 0xCECA,0xD1A1,0xCECB,0xABEE,0xCECE,0xCEC4,0xABED,0xCEC6,
      0,0xCEC7,     0,     0,0xCEC9,0xABE9,     0,     0,
-0xAEA3,     0,     0,0xCEC5,0xCEC1,0xAEA4,     0,     0,
+0xAEA3,     0,0xF9DA,0xCEC5,0xCEC1,0xAEA4,     0,     0,
 0xCECF,0xAE7E,0xD17D,0xCEC8,     0,0xD17C,0xCEC3,0xCECC,
      0,     0,0xABEC,0xAEA1,0xABF2,0xAEA2,0xCED0,0xD17E,
 0xABEB,0xAEA6,0xABF1,0xABF0,0xABEF,0xAEA5,0xCED1,0xAEA7,
@@ -4895,7 +4896,7 @@ static uint16 tab_uni_big57[]={
 0xDACF,0xDACE,0xDACB,0xB2B8,0xB577,0xDAC9,0xDACC,0xB578,
 0xDACD,0xDACA,     0,     0,     0,     0,     0,     0,
      0,0xDEEE,     0,0xDEF2,0xB84E,     0,0xE2F0,0xB851,
-0xDEF0,     0,     0,0xDEED,0xDEE8,0xDEEA,0xDEEB,0xDEE4,
+0xDEF0,0xF9DB,     0,0xDEED,0xDEE8,0xDEEA,0xDEEB,0xDEE4,
      0,0xB84D,     0,     0,0xB84C,     0,0xB848,0xDEE7,
      0,0xB84F,     0,0xB850,0xDEE6,0xDEE9,0xDEF1,0xB84A,
 0xB84B,0xDEEF,0xDEE5,     0,     0,     0,0xE2F2,0xBAD0,
@@ -5027,7 +5028,7 @@ static uint16 tab_uni_big57[]={
 0xD34D,0xAFBB,0xD34B,     0,0xD34C,0xD34E,     0,     0,
      0,0xD34A,0xB2C9,     0,0xD6DE,0xB2CB,0xD6E0,0xB2CA,
 0xD6DF,     0,     0,     0,     0,     0,0xDAE8,0xB5AF,
-     0,0xDAEA,0xDAE7,0xD6E1,     0,0xB5B0,     0,     0,
+     0,0xDAEA,0xDAE7,0xD6E1,     0,0xB5B0,     0,0xF9D8,
 0xDAE9,     0,     0,     0,     0,     0,     0,0xDF56,
      0,0xB864,0xDF54,0xB865,0xDF55,0xB866,     0,     0,
      0,0xBAE9,0xE361,0xE35E,0xE360,0xBAEA,0xBAEB,0xE35F,
@@ -5416,7 +5417,7 @@ static uint16 tab_uni_big57[]={
      0,0xB5F6,0xDBCD,     0,     0,     0,0xDBC9,0xDBCB,
 0xDBC6,0xDBC5,0xDBC3,     0,0xDBCA,0xDBCC,0xDBC8,     0,
 0xDBC7,0xB5F4,0xB5F5,     0,     0,     0,     0,     0,
-     0,0xDBCF,0xB8CD,0xDFF2,0xDFF8,0xDFF3,0xDFF4,     0,
+     0,0xDBCF,0xB8CD,0xDFF2,0xDFF8,0xDFF3,0xDFF4,0xF9D6,
 0xDFF9,     0,0xB8CF,     0,0xB8C7,0xB8CE,0xDFF1,0xDBC4,
 0xB8CA,0xB8C8,0xDFF7,0xDFF6,0xB8C9,0xB8CB,0xDFF5,0xB8C6,
      0,0xB8CC,     0,     0,     0,     0,     0,0xE3F6,
@@ -5734,7 +5735,7 @@ static uint16 tab_uni_big57[]={
 0xE47B,0xE4AF,0xE4AC,0xE4A7,0xE477,0xE476,0xE4A1,0xE4B4,
 0xBBCF,0xE4B7,0xE47D,0xE4A3,0xBE52,     0,     0,     0,
      0,     0,0xBE5A,0xBE55,0xE8A4,0xE8A1,0xE867,0xBE50,
-     0,     0,     0,0xBE4F,0xBE56,     0,     0,     0,
+     0,0xF9D7,     0,0xBE4F,0xBE56,     0,     0,     0,
 0xE865,0xBE54,0xE871,0xE863,0xE864,0xBE4E,0xE8A3,0xBE58,
 0xE874,0xE879,0xE873,0xEBEE,0xE86F,0xE877,0xE875,0xE868,
 0xE862,0xE87D,0xBE57,0xE87E,     0,0xE878,     0,0xE86D,
root@tpa-monitor:/home/workarea/package/ap/mysql/mysql-5.0.7-beta-nightly-20050607#
[23 Jun 2005 16:51] Aleksey Kishkin
Hi! thank you for the patch, 
This bugreport is duplicate of another bugreport:
http://bugs.mysql.com/bug.php?id=8603
[5 Aug 2005 6:22] [ name withheld ]
Well, I'm using version 4.1.12a and 4.1.13a but still got the same problem when I input big5 code 0xF9DC, 0xF9D7 etc which were listed in the previous (and fixed) bug report.
The error message reported by the driver (MySQL 3.51.11-2) is --
Illegal mix of collations (ucs2_general_ci,IMPLICIT) and (big5_chinese_ci,COERCIBLE) for operation '='