Commit 59319277 authored by bar@mysql.com's avatar bar@mysql.com

Bug#12476 Some big5 codes are still missing.

ctype-big5.c:
  Adding extra cp950 characters into Unicode mapping.
ctype_big5.result, ctype_big5.test:
  Adding test case
parent 0c75bbbc
...@@ -170,3 +170,22 @@ SELECT HEX(a) FROM t1 WHERE MATCH(a) AGAINST (0xA741ADCCA66EB6DC IN BOOLEAN MODE ...@@ -170,3 +170,22 @@ SELECT HEX(a) FROM t1 WHERE MATCH(a) AGAINST (0xA741ADCCA66EB6DC IN BOOLEAN MODE
HEX(a) HEX(a)
A741ADCCA66EB6DC20A7DAADCCABDCA66E A741ADCCA66EB6DC20A7DAADCCABDCA66E
DROP TABLE t1; DROP TABLE t1;
set names big5;
create table t1 (a char character set big5);
insert into t1 values (0xF9D6),(0xF9D7),(0xF9D8),(0xF9D9);
insert into t1 values (0xF9DA),(0xF9DB),(0xF9DC);
select hex(a) a, hex(@u:=convert(a using utf8)) b,
hex(convert(@u using big5)) c from t1 order by a;
a b c
F9D6 E7A281 F9D6
F9D7 E98AB9 F9D7
F9D8 E8A38F F9D8
F9D9 E5A2BB F9D9
F9DA E68192 F9DA
F9DB E7B2A7 F9DB
F9DC E5ABBA F9DC
alter table t1 convert to character set utf8;
select hex(a) from t1 where a = _big5 0xF9DC;
hex(a)
E5ABBA
drop table t1;
...@@ -38,4 +38,19 @@ INSERT INTO t1 VALUES(0xA741ADCCA66EB6DC20A7DAADCCABDCA66E); ...@@ -38,4 +38,19 @@ INSERT INTO t1 VALUES(0xA741ADCCA66EB6DC20A7DAADCCABDCA66E);
SELECT HEX(a) FROM t1 WHERE MATCH(a) AGAINST (0xA741ADCCA66EB6DC IN BOOLEAN MODE); SELECT HEX(a) FROM t1 WHERE MATCH(a) AGAINST (0xA741ADCCA66EB6DC IN BOOLEAN MODE);
DROP TABLE t1; DROP TABLE t1;
#
# Bug#12476 Some big5 codes are still missing.
#
set names big5;
create table t1 (a char character set big5);
insert into t1 values (0xF9D6),(0xF9D7),(0xF9D8),(0xF9D9);
insert into t1 values (0xF9DA),(0xF9DB),(0xF9DC);
# Check round trip
select hex(a) a, hex(@u:=convert(a using utf8)) b,
hex(convert(@u using big5)) c from t1 order by a;
# Check that there is no "illegal mix of collations" error with Unicode.
alter table t1 convert to character set utf8;
select hex(a) from t1 where a = _big5 0xF9DC;
drop table t1;
# End of 4.1 tests # End of 4.1 tests
...@@ -1695,7 +1695,7 @@ static uint16 tab_big5_uni0[]={ ...@@ -1695,7 +1695,7 @@ static uint16 tab_big5_uni0[]={
0x2467,0x2468,0x2469,0x2474,0x2475,0x2476,0x2477,0x2478, 0x2467,0x2468,0x2469,0x2474,0x2475,0x2476,0x2477,0x2478,
0x2479,0x247A,0x247B,0x247C,0x247D}; 0x2479,0x247A,0x247B,0x247C,0x247D};
/* page 1 0xC940-0xF9D5 */ /* page 1 0xC940-0xF9DC */
static uint16 tab_big5_uni1[]={ static uint16 tab_big5_uni1[]={
0x4E42,0x4E5C,0x51F5,0x531A,0x5382,0x4E07,0x4E0C,0x4E47, 0x4E42,0x4E5C,0x51F5,0x531A,0x5382,0x4E07,0x4E0C,0x4E47,
0x4E8D,0x56D7,0xFA0C,0x5C6E,0x5F73,0x4E0F,0x5187,0x4E0E, 0x4E8D,0x56D7,0xFA0C,0x5C6E,0x5F73,0x4E0F,0x5187,0x4E0E,
...@@ -3251,12 +3251,13 @@ static uint16 tab_big5_uni1[]={ ...@@ -3251,12 +3251,13 @@ static uint16 tab_big5_uni1[]={
0x9E17,0x9F48,0x6207,0x6B1E,0x7227,0x864C,0x8EA8,0x9482, 0x9E17,0x9F48,0x6207,0x6B1E,0x7227,0x864C,0x8EA8,0x9482,
0x9480,0x9481,0x9A69,0x9A68,0x9B2E,0x9E19,0x7229,0x864B, 0x9480,0x9481,0x9A69,0x9A68,0x9B2E,0x9E19,0x7229,0x864B,
0x8B9F,0x9483,0x9C79,0x9EB7,0x7675,0x9A6B,0x9C7A,0x9E1D, 0x8B9F,0x9483,0x9C79,0x9EB7,0x7675,0x9A6B,0x9C7A,0x9E1D,
0x7069,0x706A,0x9EA4,0x9F7E,0x9F49,0x9F98}; 0x7069,0x706A,0x9EA4,0x9F7E,0x9F49,0x9F98,0x7881,0x92B9,
0x88CF,0x58BB,0x6052,0x7CA7,0x5AFA};
static int func_big5_uni_onechar(int code){ static int func_big5_uni_onechar(int code){
if ((code>=0xA140)&&(code<=0xC7FC)) if ((code>=0xA140)&&(code<=0xC7FC))
return(tab_big5_uni0[code-0xA140]); return(tab_big5_uni0[code-0xA140]);
if ((code>=0xC940)&&(code<=0xF9D5)) if ((code>=0xC940)&&(code<=0xF9DC))
return(tab_big5_uni1[code-0xC940]); return(tab_big5_uni1[code-0xC940]);
return(0); return(0);
} }
...@@ -3885,7 +3886,7 @@ static uint16 tab_uni_big57[]={ ...@@ -3885,7 +3886,7 @@ static uint16 tab_uni_big57[]={
0xE54D,0xE552, 0,0xE54E, 0,0xE551,0xBC5C, 0, 0xE54D,0xE552, 0,0xE54E, 0,0xE551,0xBC5C, 0,
0xBEA5,0xBC5B, 0,0xE54A,0xE550, 0,0xBC5A,0xE54F, 0xBEA5,0xBC5B, 0,0xE54A,0xE550, 0,0xBC5A,0xE54F,
0,0xE54C, 0,0xBC58, 0, 0, 0, 0, 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, 0,0xBEC0,0xE94E, 0, 0,0xBEC3,0xE950,0xBEC2,
0xE949,0xE94B, 0, 0, 0, 0,0xC0A5,0xECCC, 0xE949,0xE94B, 0, 0, 0, 0,0xC0A5,0xECCC,
0,0xC0A4,0xECCD,0xC0A3,0xECCB,0xC0A2,0xECCA, 0, 0,0xC0A4,0xECCD,0xC0A3,0xECCB,0xC0A2,0xECCA, 0,
...@@ -3957,7 +3958,7 @@ static uint16 tab_uni_big57[]={ ...@@ -3957,7 +3958,7 @@ static uint16 tab_uni_big57[]={
0xE175,0xB9DE,0xE174,0xB9E4, 0,0xE16D,0xB9DF, 0, 0xE175,0xB9DE,0xE174,0xB9E4, 0,0xE16D,0xB9DF, 0,
0xE17B,0xB9E0,0xE16F,0xE172,0xE177,0xE171,0xE16C, 0, 0xE17B,0xB9E0,0xE16F,0xE172,0xE177,0xE171,0xE16C, 0,
0, 0, 0,0xE173,0xE555,0xBC61,0xE558,0xE557, 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, 0,0xE55D,0xE55B,0xE559, 0,0xE55F, 0,0xE55E,
0xBC63,0xBC5E, 0,0xBC60,0xBC62, 0, 0,0xE560, 0xBC63,0xBC5E, 0,0xBC60,0xBC62, 0, 0,0xE560,
0xE957, 0, 0,0xE956,0xE955, 0,0xE958,0xE951, 0xE957, 0, 0,0xE956,0xE955, 0,0xE958,0xE951,
...@@ -4128,7 +4129,7 @@ static uint16 tab_uni_big57[]={ ...@@ -4128,7 +4129,7 @@ static uint16 tab_uni_big57[]={
0,0xCEC0, 0, 0, 0, 0, 0, 0, 0,0xCEC0, 0, 0, 0, 0, 0, 0,
0xCECA,0xD1A1,0xCECB,0xABEE,0xCECE,0xCEC4,0xABED,0xCEC6, 0xCECA,0xD1A1,0xCECB,0xABEE,0xCECE,0xCEC4,0xABED,0xCEC6,
0,0xCEC7, 0, 0,0xCEC9,0xABE9, 0, 0, 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, 0xCECF,0xAE7E,0xD17D,0xCEC8, 0,0xD17C,0xCEC3,0xCECC,
0, 0,0xABEC,0xAEA1,0xABF2,0xAEA2,0xCED0,0xD17E, 0, 0,0xABEC,0xAEA1,0xABF2,0xAEA2,0xCED0,0xD17E,
0xABEB,0xAEA6,0xABF1,0xABF0,0xABEF,0xAEA5,0xCED1,0xAEA7, 0xABEB,0xAEA6,0xABF1,0xABF0,0xABEF,0xAEA5,0xCED1,0xAEA7,
...@@ -4902,7 +4903,7 @@ static uint16 tab_uni_big57[]={ ...@@ -4902,7 +4903,7 @@ static uint16 tab_uni_big57[]={
0xDACF,0xDACE,0xDACB,0xB2B8,0xB577,0xDAC9,0xDACC,0xB578, 0xDACF,0xDACE,0xDACB,0xB2B8,0xB577,0xDAC9,0xDACC,0xB578,
0xDACD,0xDACA, 0, 0, 0, 0, 0, 0, 0xDACD,0xDACA, 0, 0, 0, 0, 0, 0,
0,0xDEEE, 0,0xDEF2,0xB84E, 0,0xE2F0,0xB851, 0,0xDEEE, 0,0xDEF2,0xB84E, 0,0xE2F0,0xB851,
0xDEF0, 0, 0,0xDEED,0xDEE8,0xDEEA,0xDEEB,0xDEE4, 0xDEF0,0xF9D6, 0,0xDEED,0xDEE8,0xDEEA,0xDEEB,0xDEE4,
0,0xB84D, 0, 0,0xB84C, 0,0xB848,0xDEE7, 0,0xB84D, 0, 0,0xB84C, 0,0xB848,0xDEE7,
0,0xB84F, 0,0xB850,0xDEE6,0xDEE9,0xDEF1,0xB84A, 0,0xB84F, 0,0xB850,0xDEE6,0xDEE9,0xDEF1,0xB84A,
0xB84B,0xDEEF,0xDEE5, 0, 0, 0,0xE2F2,0xBAD0, 0xB84B,0xDEEF,0xDEE5, 0, 0, 0,0xE2F2,0xBAD0,
...@@ -5034,7 +5035,7 @@ static uint16 tab_uni_big57[]={ ...@@ -5034,7 +5035,7 @@ static uint16 tab_uni_big57[]={
0xD34D,0xAFBB,0xD34B, 0,0xD34C,0xD34E, 0, 0, 0xD34D,0xAFBB,0xD34B, 0,0xD34C,0xD34E, 0, 0,
0,0xD34A,0xB2C9, 0,0xD6DE,0xB2CB,0xD6E0,0xB2CA, 0,0xD34A,0xB2C9, 0,0xD6DE,0xB2CB,0xD6E0,0xB2CA,
0xD6DF, 0, 0, 0, 0, 0,0xDAE8,0xB5AF, 0xD6DF, 0, 0, 0, 0, 0,0xDAE8,0xB5AF,
0,0xDAEA,0xDAE7,0xD6E1, 0,0xB5B0, 0, 0, 0,0xDAEA,0xDAE7,0xD6E1, 0,0xB5B0, 0,0xF9DB,
0xDAE9, 0, 0, 0, 0, 0, 0,0xDF56, 0xDAE9, 0, 0, 0, 0, 0, 0,0xDF56,
0,0xB864,0xDF54,0xB865,0xDF55,0xB866, 0, 0, 0,0xB864,0xDF54,0xB865,0xDF55,0xB866, 0, 0,
0,0xBAE9,0xE361,0xE35E,0xE360,0xBAEA,0xBAEB,0xE35F, 0,0xBAE9,0xE361,0xE35E,0xE360,0xBAEA,0xBAEB,0xE35F,
...@@ -5423,7 +5424,7 @@ static uint16 tab_uni_big57[]={ ...@@ -5423,7 +5424,7 @@ static uint16 tab_uni_big57[]={
0,0xB5F6,0xDBCD, 0, 0, 0,0xDBC9,0xDBCB, 0,0xB5F6,0xDBCD, 0, 0, 0,0xDBC9,0xDBCB,
0xDBC6,0xDBC5,0xDBC3, 0,0xDBCA,0xDBCC,0xDBC8, 0, 0xDBC6,0xDBC5,0xDBC3, 0,0xDBCA,0xDBCC,0xDBC8, 0,
0xDBC7,0xB5F4,0xB5F5, 0, 0, 0, 0, 0, 0xDBC7,0xB5F4,0xB5F5, 0, 0, 0, 0, 0,
0,0xDBCF,0xB8CD,0xDFF2,0xDFF8,0xDFF3,0xDFF4, 0, 0,0xDBCF,0xB8CD,0xDFF2,0xDFF8,0xDFF3,0xDFF4,0xF9D8,
0xDFF9, 0,0xB8CF, 0,0xB8C7,0xB8CE,0xDFF1,0xDBC4, 0xDFF9, 0,0xB8CF, 0,0xB8C7,0xB8CE,0xDFF1,0xDBC4,
0xB8CA,0xB8C8,0xDFF7,0xDFF6,0xB8C9,0xB8CB,0xDFF5,0xB8C6, 0xB8CA,0xB8C8,0xDFF7,0xDFF6,0xB8C9,0xB8CB,0xDFF5,0xB8C6,
0,0xB8CC, 0, 0, 0, 0, 0,0xE3F6, 0,0xB8CC, 0, 0, 0, 0, 0,0xE3F6,
...@@ -5741,7 +5742,7 @@ static uint16 tab_uni_big57[]={ ...@@ -5741,7 +5742,7 @@ static uint16 tab_uni_big57[]={
0xE47B,0xE4AF,0xE4AC,0xE4A7,0xE477,0xE476,0xE4A1,0xE4B4, 0xE47B,0xE4AF,0xE4AC,0xE4A7,0xE477,0xE476,0xE4A1,0xE4B4,
0xBBCF,0xE4B7,0xE47D,0xE4A3,0xBE52, 0, 0, 0, 0xBBCF,0xE4B7,0xE47D,0xE4A3,0xBE52, 0, 0, 0,
0, 0,0xBE5A,0xBE55,0xE8A4,0xE8A1,0xE867,0xBE50, 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, 0xE865,0xBE54,0xE871,0xE863,0xE864,0xBE4E,0xE8A3,0xBE58,
0xE874,0xE879,0xE873,0xEBEE,0xE86F,0xE877,0xE875,0xE868, 0xE874,0xE879,0xE873,0xEBEE,0xE86F,0xE877,0xE875,0xE868,
0xE862,0xE87D,0xBE57,0xE87E, 0,0xE878, 0,0xE86D, 0xE862,0xE87D,0xBE57,0xE87E, 0,0xE878, 0,0xE86D,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment