mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 10:14:19 +01:00
Fix for the bug #24037 "Lossy Hebrew to Unicode conversion".
Added definitions for the following Hebrew characters as specified by the ISO/IEC 8859-8:1999: LEFT-TO-RIGHT MARK (LRM) RIGHT-TO-LEFT MARK (RLM)
This commit is contained in:
parent
d4595f3c57
commit
86a9ad6883
5 changed files with 49 additions and 7 deletions
11
mysql-test/r/ctype_hebrew.result
Normal file
11
mysql-test/r/ctype_hebrew.result
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
DROP TABLE IF EXISTS t1;
|
||||||
|
SET NAMES hebrew;
|
||||||
|
CREATE TABLE t1 (a char(1)) DEFAULT CHARSET=hebrew;
|
||||||
|
INSERT INTO t1 VALUES (0xFD),(0xFE);
|
||||||
|
ALTER TABLE t1 CONVERT TO CHARACTER SET utf8;
|
||||||
|
SELECT HEX(a) FROM t1;
|
||||||
|
HEX(a)
|
||||||
|
E2808E
|
||||||
|
E2808F
|
||||||
|
DROP TABLE t1;
|
||||||
|
End of 4.1 tests
|
16
mysql-test/t/ctype_hebrew.test
Normal file
16
mysql-test/t/ctype_hebrew.test
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
#
|
||||||
|
# BUG #24037: Lossy Hebrew to Unicode conversion
|
||||||
|
#
|
||||||
|
# Test if LRM and RLM characters are correctly converted to UTF-8
|
||||||
|
--disable_warnings
|
||||||
|
DROP TABLE IF EXISTS t1;
|
||||||
|
--enable_warnings
|
||||||
|
|
||||||
|
SET NAMES hebrew;
|
||||||
|
CREATE TABLE t1 (a char(1)) DEFAULT CHARSET=hebrew;
|
||||||
|
INSERT INTO t1 VALUES (0xFD),(0xFE);
|
||||||
|
ALTER TABLE t1 CONVERT TO CHARACTER SET utf8;
|
||||||
|
SELECT HEX(a) FROM t1;
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
--echo End of 4.1 tests
|
|
@ -40,7 +40,7 @@
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
|
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
|
||||||
02 02 02 02 02 02 02 02 02 02 02 00 00 00 00 00
|
02 02 02 02 02 02 02 02 02 02 02 00 00 20 20 00
|
||||||
</map>
|
</map>
|
||||||
</ctype>
|
</ctype>
|
||||||
|
|
||||||
|
@ -106,7 +106,7 @@
|
||||||
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
||||||
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 2017
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 2017
|
||||||
05D0 05D1 05D2 05D3 05D4 05D5 05D6 05D7 05D8 05D9 05DA 05DB 05DC 05DD 05DE 05DF
|
05D0 05D1 05D2 05D3 05D4 05D5 05D6 05D7 05D8 05D9 05DA 05DB 05DC 05DD 05DE 05DF
|
||||||
05E0 05E1 05E2 05E3 05E4 05E5 05E6 05E7 05E8 05E9 05EA 0000 0000 0000 0000 0000
|
05E0 05E1 05E2 05E3 05E4 05E5 05E6 05E7 05E8 05E9 05EA 0000 0000 200E 200F 0000
|
||||||
</map>
|
</map>
|
||||||
</unicode>
|
</unicode>
|
||||||
|
|
||||||
|
|
|
@ -270,7 +270,14 @@ main(int argc, char **argv __attribute__((unused)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fprintf(f, "/*\n");
|
||||||
|
fprintf(f, " This file was generated by the conf_to_src utility. "
|
||||||
|
"Do not edit it directly,\n");
|
||||||
|
fprintf(f, " edit the XML definitions in sql/share/charsets/ instead.\n\n");
|
||||||
|
fprintf(f, " To re-generate, run the following in the strings/ "
|
||||||
|
"directory:\n");
|
||||||
|
fprintf(f, " ./conf_to_src ../sql/share/charsets/ > FILE\n");
|
||||||
|
fprintf(f, "*/\n\n");
|
||||||
fprintf(f,"#include <my_global.h>\n");
|
fprintf(f,"#include <my_global.h>\n");
|
||||||
fprintf(f,"#include <m_ctype.h>\n\n");
|
fprintf(f,"#include <m_ctype.h>\n\n");
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,11 @@
|
||||||
|
/*
|
||||||
|
This file was generated by the conf_to_src utility. Do not edit it directly,
|
||||||
|
edit the XML definitions in sql/share/charsets/ instead.
|
||||||
|
|
||||||
|
To re-generate, run the following in the strings/ directory:
|
||||||
|
./conf_to_src ../sql/share/charsets/ > FILE
|
||||||
|
*/
|
||||||
|
|
||||||
#include <my_global.h>
|
#include <my_global.h>
|
||||||
#include <m_ctype.h>
|
#include <m_ctype.h>
|
||||||
|
|
||||||
|
@ -1169,7 +1177,7 @@ uchar ctype_hebrew_general_ci[] = {
|
||||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||||
0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
|
0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
|
||||||
0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00
|
0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x20,0x20,0x00
|
||||||
};
|
};
|
||||||
|
|
||||||
uchar to_lower_hebrew_general_ci[] = {
|
uchar to_lower_hebrew_general_ci[] = {
|
||||||
|
@ -1261,7 +1269,7 @@ uint16 to_uni_hebrew_general_ci[] = {
|
||||||
0x05D0,0x05D1,0x05D2,0x05D3,0x05D4,0x05D5,0x05D6,0x05D7,
|
0x05D0,0x05D1,0x05D2,0x05D3,0x05D4,0x05D5,0x05D6,0x05D7,
|
||||||
0x05D8,0x05D9,0x05DA,0x05DB,0x05DC,0x05DD,0x05DE,0x05DF,
|
0x05D8,0x05D9,0x05DA,0x05DB,0x05DC,0x05DD,0x05DE,0x05DF,
|
||||||
0x05E0,0x05E1,0x05E2,0x05E3,0x05E4,0x05E5,0x05E6,0x05E7,
|
0x05E0,0x05E1,0x05E2,0x05E3,0x05E4,0x05E5,0x05E6,0x05E7,
|
||||||
0x05E8,0x05E9,0x05EA,0x0000,0x0000,0x0000,0x0000,0x0000
|
0x05E8,0x05E9,0x05EA,0x0000,0x0000,0x200E,0x200F,0x0000
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -5100,7 +5108,7 @@ uchar ctype_hebrew_bin[] = {
|
||||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||||
0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
|
0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
|
||||||
0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00
|
0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x20,0x20,0x00
|
||||||
};
|
};
|
||||||
|
|
||||||
uchar to_lower_hebrew_bin[] = {
|
uchar to_lower_hebrew_bin[] = {
|
||||||
|
@ -5173,7 +5181,7 @@ uint16 to_uni_hebrew_bin[] = {
|
||||||
0x05D0,0x05D1,0x05D2,0x05D3,0x05D4,0x05D5,0x05D6,0x05D7,
|
0x05D0,0x05D1,0x05D2,0x05D3,0x05D4,0x05D5,0x05D6,0x05D7,
|
||||||
0x05D8,0x05D9,0x05DA,0x05DB,0x05DC,0x05DD,0x05DE,0x05DF,
|
0x05D8,0x05D9,0x05DA,0x05DB,0x05DC,0x05DD,0x05DE,0x05DF,
|
||||||
0x05E0,0x05E1,0x05E2,0x05E3,0x05E4,0x05E5,0x05E6,0x05E7,
|
0x05E0,0x05E1,0x05E2,0x05E3,0x05E4,0x05E5,0x05E6,0x05E7,
|
||||||
0x05E8,0x05E9,0x05EA,0x0000,0x0000,0x0000,0x0000,0x0000
|
0x05E8,0x05E9,0x05EA,0x0000,0x0000,0x200E,0x200F,0x0000
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Reference in a new issue