mirror of
https://github.com/MariaDB/server.git
synced 2025-08-09 22:24:09 +03:00
Multi-level collation in UCA, Thai sorting with contraction for UTF8.
This commit is contained in:
@@ -101,7 +101,7 @@ extern MY_UNICASE_INFO my_unicase_unicode520;
|
||||
*/
|
||||
#define MY_UCA_MAX_WEIGHT_SIZE (8+1) /* Including 0 terminator */
|
||||
#define MY_UCA_CONTRACTION_MAX_WEIGHT_SIZE (2*8+1) /* Including 0 terminator */
|
||||
#define MY_UCA_WEIGHT_LEVELS 1
|
||||
#define MY_UCA_WEIGHT_LEVELS 2
|
||||
|
||||
typedef struct my_contraction_t
|
||||
{
|
||||
|
@@ -2706,6 +2706,261 @@ Z,z,Ź,ź,Ż,ż,Ž,ž
|
||||
ǁ
|
||||
ǂ
|
||||
ǃ
|
||||
select group_concat(c1 order by c1) from t1 group by c1 collate utf8_thai_520_w2;
|
||||
group_concat(c1 order by c1)
|
||||
÷
|
||||
×
|
||||
A,a
|
||||
Á,á
|
||||
À,à
|
||||
Ă,ă
|
||||
Ắ,ắ
|
||||
Ằ,ằ
|
||||
Ẵ,ẵ
|
||||
Ẳ,ẳ
|
||||
Â,â
|
||||
Ấ,ấ
|
||||
Ầ,ầ
|
||||
Ẫ,ẫ
|
||||
Ẩ,ẩ
|
||||
Ǎ,ǎ
|
||||
Å,å
|
||||
Ǻ,ǻ
|
||||
Ä,ä
|
||||
Ǟ,ǟ
|
||||
Ã,ã
|
||||
Ǡ,ǡ
|
||||
Ą,ą
|
||||
Ā,ā
|
||||
Ả,ả
|
||||
Ạ,ạ
|
||||
Ặ,ặ
|
||||
Ậ,ậ
|
||||
AA,Aa,aA,aa
|
||||
AE,Ae,aE,ae
|
||||
Æ,æ
|
||||
Ǽ,ǽ
|
||||
Ǣ,ǣ
|
||||
B,b
|
||||
ƀ
|
||||
Ɓ
|
||||
Ƃ,ƃ
|
||||
C,c
|
||||
Ć,ć
|
||||
Ĉ,ĉ
|
||||
Č,č
|
||||
Ċ,ċ
|
||||
Ç,ç
|
||||
CH,Ch,cH,ch
|
||||
Ƈ,ƈ
|
||||
D,d
|
||||
Ď,ď
|
||||
Đ,đ
|
||||
Ð,ð
|
||||
DZ,Dz,dZ,dz,DZ,Dz,dz
|
||||
DŽ,Dž,dŽ,dž,DŽ,Dž,dž
|
||||
Ɖ
|
||||
Ɗ
|
||||
Ƌ,ƌ
|
||||
E,e
|
||||
É,é
|
||||
È,è
|
||||
Ĕ,ĕ
|
||||
Ê,ê
|
||||
Ế,ế
|
||||
Ề,ề
|
||||
Ễ,ễ
|
||||
Ể,ể
|
||||
Ě,ě
|
||||
Ë,ë
|
||||
Ẽ,ẽ
|
||||
Ė,ė
|
||||
Ę,ę
|
||||
Ē,ē
|
||||
Ẻ,ẻ
|
||||
Ẹ,ẹ
|
||||
Ệ,ệ
|
||||
Ǝ,ǝ
|
||||
Ə
|
||||
Ɛ
|
||||
F,f
|
||||
Ƒ,ƒ
|
||||
G,g
|
||||
Ǵ,ǵ
|
||||
Ğ,ğ
|
||||
Ĝ,ĝ
|
||||
Ǧ,ǧ
|
||||
Ġ,ġ
|
||||
Ģ,ģ
|
||||
Ǥ,ǥ
|
||||
Ɠ
|
||||
Ɣ
|
||||
Ƣ,ƣ
|
||||
H,h
|
||||
Ĥ,ĥ
|
||||
Ħ,ħ
|
||||
ƕ,Ƕ
|
||||
I,i
|
||||
Í,í
|
||||
Ì,ì
|
||||
Ĭ,ĭ
|
||||
Î,î
|
||||
Ǐ,ǐ
|
||||
Ï,ï
|
||||
Ĩ,ĩ
|
||||
İ
|
||||
Į,į
|
||||
Ī,ī
|
||||
Ỉ,ỉ
|
||||
Ị,ị
|
||||
IJ,Ij,iJ,ij,IJ,ij
|
||||
ı
|
||||
Ɨ
|
||||
Ɩ
|
||||
J,j
|
||||
Ĵ,ĵ
|
||||
ǰ
|
||||
K,k
|
||||
Ǩ,ǩ
|
||||
Ķ,ķ
|
||||
Ƙ,ƙ
|
||||
L,l
|
||||
Ĺ,ĺ
|
||||
Ľ,ľ
|
||||
Ļ,ļ
|
||||
Ł,ł
|
||||
Ŀ,ŀ
|
||||
LJ,Lj,lJ,lj,LJ,Lj,lj
|
||||
LL,Ll,lL,ll
|
||||
ƚ
|
||||
ƛ
|
||||
M,m
|
||||
N,n
|
||||
Ń,ń
|
||||
Ǹ,ǹ
|
||||
Ň,ň
|
||||
Ñ,ñ
|
||||
Ņ,ņ
|
||||
NJ,Nj,nJ,nj,NJ,Nj,nj
|
||||
Ɲ
|
||||
ƞ
|
||||
Ŋ,ŋ
|
||||
O,o
|
||||
Ó,ó
|
||||
Ò,ò
|
||||
Ŏ,ŏ
|
||||
Ô,ô
|
||||
Ố,ố
|
||||
Ồ,ồ
|
||||
Ỗ,ỗ
|
||||
Ổ,ổ
|
||||
Ǒ,ǒ
|
||||
Ö,ö
|
||||
Ő,ő
|
||||
Õ,õ
|
||||
Ø,ø
|
||||
Ǿ,ǿ
|
||||
Ǫ,ǫ
|
||||
Ǭ,ǭ
|
||||
Ō,ō
|
||||
Ỏ,ỏ
|
||||
Ơ,ơ
|
||||
Ớ,ớ
|
||||
Ờ,ờ
|
||||
Ỡ,ỡ
|
||||
Ở,ở
|
||||
Ợ,ợ
|
||||
Ọ,ọ
|
||||
Ộ,ộ
|
||||
OE,Oe,oE,oe
|
||||
Œ,œ
|
||||
Ɔ
|
||||
Ɵ
|
||||
P,p
|
||||
Ƥ,ƥ
|
||||
Q,q
|
||||
ĸ
|
||||
R,r
|
||||
Ŕ,ŕ
|
||||
Ř,ř
|
||||
Ŗ,ŗ
|
||||
RR,Rr,rR,rr
|
||||
Ʀ
|
||||
S,s
|
||||
Ś,ś
|
||||
Ŝ,ŝ
|
||||
Š,š
|
||||
Ş,ş
|
||||
ſ
|
||||
SS,Ss,sS,ss
|
||||
ß
|
||||
Ʃ
|
||||
ƪ
|
||||
T,t
|
||||
Ť,ť
|
||||
Ţ,ţ
|
||||
ƾ
|
||||
Ŧ,ŧ
|
||||
ƫ
|
||||
Ƭ,ƭ
|
||||
Ʈ
|
||||
U,u
|
||||
Ú,ú
|
||||
Ù,ù
|
||||
Ŭ,ŭ
|
||||
Û,û
|
||||
Ǔ,ǔ
|
||||
Ů,ů
|
||||
Ü,ü
|
||||
Ǘ,ǘ
|
||||
Ǜ,ǜ
|
||||
Ǚ,ǚ
|
||||
Ǖ,ǖ
|
||||
Ű,ű
|
||||
Ũ,ũ
|
||||
Ų,ų
|
||||
Ū,ū
|
||||
Ủ,ủ
|
||||
Ư,ư
|
||||
Ứ,ứ
|
||||
Ừ,ừ
|
||||
Ữ,ữ
|
||||
Ử,ử
|
||||
Ự,ự
|
||||
Ụ,ụ
|
||||
Ɯ
|
||||
Ʊ
|
||||
V,v
|
||||
Ʋ
|
||||
W,w
|
||||
Ŵ,ŵ
|
||||
X,x
|
||||
Y,y
|
||||
Ý,ý
|
||||
Ŷ,ŷ
|
||||
ÿ,Ÿ
|
||||
Ƴ,ƴ
|
||||
Z,z
|
||||
Ź,ź
|
||||
Ž,ž
|
||||
Ż,ż
|
||||
ƍ
|
||||
Ƶ,ƶ
|
||||
Ʒ
|
||||
Ǯ,ǯ
|
||||
Ƹ,ƹ
|
||||
ƺ
|
||||
Þ,þ
|
||||
ƿ,Ƿ
|
||||
ƻ
|
||||
Ƨ,ƨ
|
||||
Ƽ,ƽ
|
||||
Ƅ,ƅ
|
||||
ʼn
|
||||
ǀ
|
||||
ǁ
|
||||
ǂ
|
||||
ǃ
|
||||
ALTER TABLE t1 CONVERT TO CHARACTER SET ucs2 COLLATE ucs2_bin;
|
||||
SELECT GROUP_CONCAT(c1 ORDER BY c1) FROM t1 GROUP BY c1 COLLATE ucs2_unicode_ci;
|
||||
GROUP_CONCAT(c1 ORDER BY c1)
|
||||
|
86
mysql-test/r/ctype_uca_partitions.result
Normal file
86
mysql-test/r/ctype_uca_partitions.result
Normal file
@@ -0,0 +1,86 @@
|
||||
SET NAMES utf8;
|
||||
CREATE TABLE t1 (c1 VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_thai_520_w2)
|
||||
PARTITION BY KEY(c1) PARTITIONS 3;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_thai_520_w2 DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
/*!50100 PARTITION BY KEY (c1)
|
||||
PARTITIONS 3 */
|
||||
INSERT INTO t1 VALUES ('A'),('À'),('Á'),('Â'),('Ã'),('Ä'),('Å');
|
||||
INSERT INTO t1 VALUES ('B');
|
||||
INSERT INTO t1 VALUES ('C');
|
||||
INSERT INTO t1 VALUES ('D');
|
||||
INSERT INTO t1 VALUES ('E');
|
||||
INSERT INTO t1 VALUES ('F');
|
||||
INSERT INTO t1 VALUES ('G');
|
||||
INSERT INTO t1 VALUES ('H');
|
||||
INSERT INTO t1 VALUES ('I');
|
||||
INSERT INTO t1 VALUES ('J');
|
||||
INSERT INTO t1 VALUES ('K');
|
||||
INSERT INTO t1 VALUES ('L'),('Ĺ'),('Ļ'),('Ľ'),('Ŀ'),('Ł');
|
||||
INSERT INTO t1 VALUES ('M');
|
||||
INSERT INTO t1 VALUES ('N');
|
||||
INSERT INTO t1 VALUES ('O'),('Ò'),('Ó'),('Ô'),('Õ'),('Ö'),('Ø');
|
||||
INSERT INTO t1 VALUES ('P');
|
||||
INSERT INTO t1 VALUES ('Q');
|
||||
INSERT INTO t1 VALUES ('R');
|
||||
INSERT INTO t1 VALUES ('S');
|
||||
INSERT INTO t1 VALUES ('T');
|
||||
INSERT INTO t1 VALUES ('U');
|
||||
INSERT INTO t1 VALUES ('V');
|
||||
INSERT INTO t1 VALUES ('W');
|
||||
INSERT INTO t1 VALUES ('X');
|
||||
INSERT INTO t1 VALUES ('Y');
|
||||
INSERT INTO t1 VALUES ('Z');
|
||||
SELECT * FROM t1 PARTITION (p0) ORDER BY c1;
|
||||
c1
|
||||
J
|
||||
K
|
||||
L
|
||||
Ĺ
|
||||
Ľ
|
||||
Ļ
|
||||
Ł
|
||||
Ŀ
|
||||
M
|
||||
Q
|
||||
R
|
||||
T
|
||||
V
|
||||
X
|
||||
SELECT * FROM t1 PARTITION (p1) ORDER BY c1;
|
||||
c1
|
||||
A
|
||||
Á
|
||||
À
|
||||
Â
|
||||
Å
|
||||
Ä
|
||||
Ã
|
||||
D
|
||||
E
|
||||
F
|
||||
G
|
||||
I
|
||||
N
|
||||
S
|
||||
U
|
||||
W
|
||||
Z
|
||||
SELECT * FROM t1 PARTITION (p2) ORDER BY c1;
|
||||
c1
|
||||
B
|
||||
C
|
||||
H
|
||||
O
|
||||
Ó
|
||||
Ò
|
||||
Ô
|
||||
Ö
|
||||
Õ
|
||||
Ø
|
||||
P
|
||||
Y
|
||||
DROP TABLE t1;
|
96
mysql-test/r/ctype_uca_th.result
Normal file
96
mysql-test/r/ctype_uca_th.result
Normal file
@@ -0,0 +1,96 @@
|
||||
SET NAMES utf8;
|
||||
#
|
||||
# Testing strnxfrm
|
||||
#
|
||||
CREATE TABLE t1 (a VARCHAR(3) CHARACTER SET utf8 COLLATE utf8_thai_520_w2);
|
||||
INSERT INTO t1 VALUES (SPACE(0)),(SPACE(1)),(SPACE(2));
|
||||
SELECT HEX(a), HEX(WEIGHT_STRING(a AS CHAR(8))) FROM t1;
|
||||
HEX(a) HEX(WEIGHT_STRING(a AS CHAR(8)))
|
||||
020A020A020A020A020A020A020A020A00200020002000200020002000200020
|
||||
20 020A020A020A020A020A020A020A020A00200020002000200020002000200020
|
||||
2020 020A020A020A020A020A020A020A020A00200020002000200020002000200020
|
||||
SELECT HEX(a), HEX(WEIGHT_STRING(a AS CHAR(4))) FROM t1;
|
||||
HEX(a) HEX(WEIGHT_STRING(a AS CHAR(4)))
|
||||
020A020A020A020A0020002000200020
|
||||
20 020A020A020A020A0020002000200020
|
||||
2020 020A020A020A020A0020002000200020
|
||||
SELECT HEX(a), HEX(WEIGHT_STRING(a AS CHAR(4) LEVEL 1)) FROM t1;
|
||||
HEX(a) HEX(WEIGHT_STRING(a AS CHAR(4) LEVEL 1))
|
||||
020A020A020A020A
|
||||
20 020A020A020A020A
|
||||
2020 020A020A020A020A
|
||||
SELECT HEX(a), HEX(WEIGHT_STRING(a AS CHAR(4) LEVEL 2)) FROM t1;
|
||||
HEX(a) HEX(WEIGHT_STRING(a AS CHAR(4) LEVEL 2))
|
||||
0020002000200020
|
||||
20 0020002000200020
|
||||
2020 0020002000200020
|
||||
SELECT HEX(a), HEX(WEIGHT_STRING(a AS CHAR(4) LEVEL 3)) FROM t1;
|
||||
HEX(a) HEX(WEIGHT_STRING(a AS CHAR(4) LEVEL 3))
|
||||
0020002000200020
|
||||
20 0020002000200020
|
||||
2020 0020002000200020
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a CHAR(10) CHARACTER SET utf8 COLLATE utf8_thai_520_w2);
|
||||
INSERT INTO t1 VALUES ('A'),('À'),('Á'),('Â'),('Ã'),('Ä'),('Å');
|
||||
SELECT a, HEX(WEIGHT_STRING(a LEVEL 2)) FROM t1 ORDER BY a;
|
||||
a HEX(WEIGHT_STRING(a LEVEL 2))
|
||||
A 0020
|
||||
Á 00200032
|
||||
À 00200035
|
||||
 0020003C
|
||||
Å 00200043
|
||||
Ä 00200047
|
||||
à 0020004E
|
||||
SELECT a, HEX(WEIGHT_STRING(a LEVEL 2)) FROM t1 ORDER BY a DESC;
|
||||
a HEX(WEIGHT_STRING(a LEVEL 2))
|
||||
à 0020004E
|
||||
Ä 00200047
|
||||
Å 00200043
|
||||
 0020003C
|
||||
À 00200035
|
||||
Á 00200032
|
||||
A 0020
|
||||
ALTER TABLE t1 MODIFY a VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_thai_520_w2;
|
||||
SELECT a, HEX(WEIGHT_STRING(a LEVEL 2)) FROM t1 ORDER BY a;
|
||||
a HEX(WEIGHT_STRING(a LEVEL 2))
|
||||
A 0020
|
||||
Á 00200032
|
||||
À 00200035
|
||||
 0020003C
|
||||
Å 00200043
|
||||
Ä 00200047
|
||||
à 0020004E
|
||||
SELECT a, HEX(WEIGHT_STRING(a LEVEL 2)) FROM t1 ORDER BY a DESC;
|
||||
a HEX(WEIGHT_STRING(a LEVEL 2))
|
||||
à 0020004E
|
||||
Ä 00200047
|
||||
Å 00200043
|
||||
 0020003C
|
||||
À 00200035
|
||||
Á 00200032
|
||||
A 0020
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_thai_520_w2);
|
||||
INSERT INTO t1 VALUES ('cota'),('cote'),('cotz');
|
||||
INSERT INTO t1 VALUES ('coté'),('côte'),('côté'),('cotë'),('côtë');
|
||||
SELECT * FROM t1 ORDER BY a;
|
||||
a
|
||||
cota
|
||||
cote
|
||||
coté
|
||||
cotë
|
||||
côte
|
||||
côté
|
||||
côtë
|
||||
cotz
|
||||
SELECT * FROM t1 ORDER BY a DESC;
|
||||
a
|
||||
cotz
|
||||
côtë
|
||||
côté
|
||||
côte
|
||||
cotë
|
||||
coté
|
||||
cote
|
||||
cota
|
||||
DROP TABLE t1;
|
521
mysql-test/r/ctype_utf8_th.result
Normal file
521
mysql-test/r/ctype_utf8_th.result
Normal file
@@ -0,0 +1,521 @@
|
||||
DROP TABLE IF EXISTS t1;
|
||||
SET NAMES utf8;
|
||||
CREATE TABLE t1 (a VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_bin);
|
||||
INSERT INTO t1 VALUES ('-กระแย่ง');
|
||||
INSERT INTO t1 VALUES ('กก');
|
||||
INSERT INTO t1 VALUES ('กราบ');
|
||||
INSERT INTO t1 VALUES ('ข่าง');
|
||||
INSERT INTO t1 VALUES ('ข้าง');
|
||||
INSERT INTO t1 VALUES ('ข้างกระดาน');
|
||||
INSERT INTO t1 VALUES ('ข้างขึ้น');
|
||||
INSERT INTO t1 VALUES ('ข้างควาย');
|
||||
INSERT INTO t1 VALUES ('ข้างเงิน');
|
||||
INSERT INTO t1 VALUES ('ข้างแรม');
|
||||
INSERT INTO t1 VALUES ('ข้างออก');
|
||||
INSERT INTO t1 VALUES ('ข้างๆ');
|
||||
INSERT INTO t1 VALUES ('ข้างๆ คูๆ');
|
||||
INSERT INTO t1 VALUES ('ขาง');
|
||||
INSERT INTO t1 VALUES ('แข็ง');
|
||||
INSERT INTO t1 VALUES ('แข่ง');
|
||||
INSERT INTO t1 VALUES ('แข่งขัน');
|
||||
INSERT INTO t1 VALUES ('แข้ง');
|
||||
INSERT INTO t1 VALUES ('แข้งขวา');
|
||||
INSERT INTO t1 VALUES ('แข็งขัน');
|
||||
INSERT INTO t1 VALUES ('ทูลเกล้า');
|
||||
INSERT INTO t1 VALUES ('ทูลเกล้าทูลกระหม่อม');
|
||||
INSERT INTO t1 VALUES ('ทูลเกล้าฯ');
|
||||
INSERT INTO t1 VALUES ('บุญญา');
|
||||
INSERT INTO t1 VALUES ('บุญ-หลง');
|
||||
INSERT INTO t1 VALUES ('บุญหลง');
|
||||
INSERT INTO t1 VALUES ('ป่า');
|
||||
INSERT INTO t1 VALUES ('ป่าน');
|
||||
INSERT INTO t1 VALUES ('ป้า');
|
||||
INSERT INTO t1 VALUES ('ป้าน');
|
||||
INSERT INTO t1 VALUES ('ป๊า');
|
||||
INSERT INTO t1 VALUES ('ป๊าน');
|
||||
INSERT INTO t1 VALUES ('ป๋า');
|
||||
INSERT INTO t1 VALUES ('ป๋าน');
|
||||
INSERT INTO t1 VALUES ('ปา');
|
||||
INSERT INTO t1 VALUES ('ปาน');
|
||||
INSERT INTO t1 VALUES ('แป้ง');
|
||||
INSERT INTO t1 VALUES ('พณิชย์');
|
||||
INSERT INTO t1 VALUES ('ม้า');
|
||||
INSERT INTO t1 VALUES ('ฯพณฯ');
|
||||
INSERT INTO t1 VALUES ('A');
|
||||
INSERT INTO t1 VALUES ('a');
|
||||
INSERT INTO t1 VALUES ('a\'');
|
||||
INSERT INTO t1 VALUES ('A-');
|
||||
INSERT INTO t1 VALUES ('a-');
|
||||
INSERT INTO t1 VALUES ('-a');
|
||||
INSERT INTO t1 VALUES ('A.');
|
||||
INSERT INTO t1 VALUES ('a.');
|
||||
INSERT INTO t1 VALUES ('A-1');
|
||||
INSERT INTO t1 VALUES ('aa');
|
||||
INSERT INTO t1 VALUES ('AA');
|
||||
INSERT INTO t1 VALUES ('A.A.');
|
||||
INSERT INTO t1 VALUES ('a.a.');
|
||||
INSERT INTO t1 VALUES ('AAA');
|
||||
INSERT INTO t1 VALUES ('A.A.A.');
|
||||
INSERT INTO t1 VALUES ('AAAA');
|
||||
INSERT INTO t1 VALUES ('A.A.A.L.');
|
||||
INSERT INTO t1 VALUES ('A.A.A.S.');
|
||||
INSERT INTO t1 VALUES ('Aachen');
|
||||
INSERT INTO t1 VALUES ('A.A.E.');
|
||||
INSERT INTO t1 VALUES ('A.Ae.E.');
|
||||
INSERT INTO t1 VALUES ('A.A.E.E.');
|
||||
INSERT INTO t1 VALUES ('AAES');
|
||||
INSERT INTO t1 VALUES ('AAF');
|
||||
INSERT INTO t1 VALUES ('A.Agr');
|
||||
INSERT INTO t1 VALUES ('aah');
|
||||
INSERT INTO t1 VALUES ('@@@@@');
|
||||
INSERT INTO t1 VALUES ('0000');
|
||||
INSERT INTO t1 VALUES ('9999');
|
||||
INSERT INTO t1 VALUES ('Aalborg');
|
||||
INSERT INTO t1 VALUES ('aide');
|
||||
INSERT INTO t1 VALUES ('air');
|
||||
INSERT INTO t1 VALUES ('@@@air');
|
||||
INSERT INTO t1 VALUES ('air@@@');
|
||||
INSERT INTO t1 VALUES ('C.A.F');
|
||||
INSERT INTO t1 VALUES ('Canon');
|
||||
INSERT INTO t1 VALUES ('coop');
|
||||
INSERT INTO t1 VALUES ('co-op');
|
||||
INSERT INTO t1 VALUES ('COOP');
|
||||
INSERT INTO t1 VALUES ('CO-OP');
|
||||
INSERT INTO t1 VALUES ('Copenhegen');
|
||||
INSERT INTO t1 VALUES ('McArthur');
|
||||
INSERT INTO t1 VALUES ('Mc Arthur');
|
||||
INSERT INTO t1 VALUES ('Mc Mahon');
|
||||
INSERT INTO t1 VALUES ('vice-president');
|
||||
INSERT INTO t1 VALUES ('vice versa');
|
||||
INSERT INTO t1 VALUES ('vice-versa');
|
||||
INSERT INTO t1 VALUES ('10 ลิตร');
|
||||
INSERT INTO t1 VALUES ('๑๐ ลิตร');
|
||||
INSERT INTO t1 VALUES ('10 litre');
|
||||
INSERT INTO t1 VALUES ('10 litre (10 ลิตร)');
|
||||
INSERT INTO t1 VALUES ('10 ลิตร (10 litre)');
|
||||
INSERT INTO t1 VALUES ('10 litre (๑๐ ลิตร)');
|
||||
INSERT INTO t1 VALUES ('๑๐ ลิตร (10 litre)');
|
||||
INSERT INTO t1 VALUES ('๑๐ ลิตร [10 litre]');
|
||||
INSERT INTO t1 VALUES ('๑๐ ลิตร {10 litre}');
|
||||
ALTER TABLE t1 ORDER BY a;
|
||||
ALTER TABLE t1
|
||||
MODIFY a VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_thai_520_w2,
|
||||
ADD id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
ADD KEY a_id (a, id);
|
||||
#
|
||||
# Ascending sort, using filesort
|
||||
#
|
||||
EXPLAIN SELECT a FROM t1 ORDER BY a, BINARY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index NULL a_id 97 NULL 96 Using index; Using filesort
|
||||
SELECT a FROM t1 ORDER BY a, BINARY a;
|
||||
a
|
||||
-a
|
||||
-กระแย่ง
|
||||
@@@@@
|
||||
@@@air
|
||||
0000
|
||||
10 litre
|
||||
10 litre (10 ลิตร)
|
||||
10 litre (๑๐ ลิตร)
|
||||
10 ลิตร
|
||||
๑๐ ลิตร
|
||||
10 ลิตร (10 litre)
|
||||
๑๐ ลิตร (10 litre)
|
||||
๑๐ ลิตร [10 litre]
|
||||
๑๐ ลิตร {10 litre}
|
||||
9999
|
||||
A
|
||||
a
|
||||
A-
|
||||
a-
|
||||
A-1
|
||||
A.
|
||||
a.
|
||||
A.A.
|
||||
a.a.
|
||||
A.A.A.
|
||||
A.A.A.L.
|
||||
A.A.A.S.
|
||||
A.A.E.
|
||||
A.A.E.E.
|
||||
A.Ae.E.
|
||||
A.Agr
|
||||
a'
|
||||
AA
|
||||
aa
|
||||
AAA
|
||||
AAAA
|
||||
Aachen
|
||||
AAES
|
||||
AAF
|
||||
aah
|
||||
Aalborg
|
||||
aide
|
||||
air
|
||||
air@@@
|
||||
C.A.F
|
||||
Canon
|
||||
CO-OP
|
||||
co-op
|
||||
COOP
|
||||
coop
|
||||
Copenhegen
|
||||
Mc Arthur
|
||||
Mc Mahon
|
||||
McArthur
|
||||
vice versa
|
||||
vice-president
|
||||
vice-versa
|
||||
กก
|
||||
กราบ
|
||||
ขาง
|
||||
ข่าง
|
||||
ข้าง
|
||||
ข้างๆ
|
||||
ข้างๆ คูๆ
|
||||
ข้างกระดาน
|
||||
ข้างขึ้น
|
||||
ข้างควาย
|
||||
ข้างเงิน
|
||||
ข้างแรม
|
||||
ข้างออก
|
||||
แข็ง
|
||||
แข่ง
|
||||
แข้ง
|
||||
แข้งขวา
|
||||
แข็งขัน
|
||||
แข่งขัน
|
||||
ทูลเกล้า
|
||||
ทูลเกล้าทูลกระหม่อม
|
||||
ทูลเกล้าฯ
|
||||
บุญ-หลง
|
||||
บุญญา
|
||||
บุญหลง
|
||||
ปา
|
||||
ป่า
|
||||
ป้า
|
||||
ป๊า
|
||||
ป๋า
|
||||
ปาน
|
||||
ป่าน
|
||||
ป้าน
|
||||
ป๊าน
|
||||
ป๋าน
|
||||
แป้ง
|
||||
พณิชย์
|
||||
ม้า
|
||||
ฯพณฯ
|
||||
#
|
||||
# Descending sort, using filesort
|
||||
#
|
||||
EXPLAIN SELECT a FROM t1 ORDER BY a DESC, BINARY a DESC;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index NULL a_id 97 NULL 96 Using index; Using filesort
|
||||
SELECT a FROM t1 ORDER BY a DESC, BINARY a DESC;
|
||||
a
|
||||
ฯพณฯ
|
||||
ม้า
|
||||
พณิชย์
|
||||
แป้ง
|
||||
ป๋าน
|
||||
ป๊าน
|
||||
ป้าน
|
||||
ป่าน
|
||||
ปาน
|
||||
ป๋า
|
||||
ป๊า
|
||||
ป้า
|
||||
ป่า
|
||||
ปา
|
||||
บุญหลง
|
||||
บุญญา
|
||||
บุญ-หลง
|
||||
ทูลเกล้าฯ
|
||||
ทูลเกล้าทูลกระหม่อม
|
||||
ทูลเกล้า
|
||||
แข่งขัน
|
||||
แข็งขัน
|
||||
แข้งขวา
|
||||
แข้ง
|
||||
แข่ง
|
||||
แข็ง
|
||||
ข้างออก
|
||||
ข้างแรม
|
||||
ข้างเงิน
|
||||
ข้างควาย
|
||||
ข้างขึ้น
|
||||
ข้างกระดาน
|
||||
ข้างๆ คูๆ
|
||||
ข้างๆ
|
||||
ข้าง
|
||||
ข่าง
|
||||
ขาง
|
||||
กราบ
|
||||
กก
|
||||
vice-versa
|
||||
vice-president
|
||||
vice versa
|
||||
McArthur
|
||||
Mc Mahon
|
||||
Mc Arthur
|
||||
Copenhegen
|
||||
coop
|
||||
COOP
|
||||
co-op
|
||||
CO-OP
|
||||
Canon
|
||||
C.A.F
|
||||
air@@@
|
||||
air
|
||||
aide
|
||||
Aalborg
|
||||
aah
|
||||
AAF
|
||||
AAES
|
||||
Aachen
|
||||
AAAA
|
||||
AAA
|
||||
aa
|
||||
AA
|
||||
a'
|
||||
A.Agr
|
||||
A.Ae.E.
|
||||
A.A.E.E.
|
||||
A.A.E.
|
||||
A.A.A.S.
|
||||
A.A.A.L.
|
||||
A.A.A.
|
||||
a.a.
|
||||
A.A.
|
||||
a.
|
||||
A.
|
||||
A-1
|
||||
a-
|
||||
A-
|
||||
a
|
||||
A
|
||||
9999
|
||||
๑๐ ลิตร {10 litre}
|
||||
๑๐ ลิตร [10 litre]
|
||||
๑๐ ลิตร (10 litre)
|
||||
10 ลิตร (10 litre)
|
||||
๑๐ ลิตร
|
||||
10 ลิตร
|
||||
10 litre (๑๐ ลิตร)
|
||||
10 litre (10 ลิตร)
|
||||
10 litre
|
||||
0000
|
||||
@@@air
|
||||
@@@@@
|
||||
-กระแย่ง
|
||||
-a
|
||||
#
|
||||
# Ascending sort, using index
|
||||
#
|
||||
EXPLAIN SELECT a FROM t1 ORDER BY a, id;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index NULL a_id 97 NULL 96 Using index
|
||||
SELECT a FROM t1 ORDER BY a, id;
|
||||
a
|
||||
-a
|
||||
-กระแย่ง
|
||||
@@@@@
|
||||
@@@air
|
||||
0000
|
||||
10 litre
|
||||
10 litre (10 ลิตร)
|
||||
10 litre (๑๐ ลิตร)
|
||||
10 ลิตร
|
||||
๑๐ ลิตร
|
||||
10 ลิตร (10 litre)
|
||||
๑๐ ลิตร (10 litre)
|
||||
๑๐ ลิตร [10 litre]
|
||||
๑๐ ลิตร {10 litre}
|
||||
9999
|
||||
A
|
||||
a
|
||||
A-
|
||||
a-
|
||||
A-1
|
||||
A.
|
||||
a.
|
||||
A.A.
|
||||
a.a.
|
||||
A.A.A.
|
||||
A.A.A.L.
|
||||
A.A.A.S.
|
||||
A.A.E.
|
||||
A.A.E.E.
|
||||
A.Ae.E.
|
||||
A.Agr
|
||||
a'
|
||||
AA
|
||||
aa
|
||||
AAA
|
||||
AAAA
|
||||
Aachen
|
||||
AAES
|
||||
AAF
|
||||
aah
|
||||
Aalborg
|
||||
aide
|
||||
air
|
||||
air@@@
|
||||
C.A.F
|
||||
Canon
|
||||
CO-OP
|
||||
co-op
|
||||
COOP
|
||||
coop
|
||||
Copenhegen
|
||||
Mc Arthur
|
||||
Mc Mahon
|
||||
McArthur
|
||||
vice versa
|
||||
vice-president
|
||||
vice-versa
|
||||
กก
|
||||
กราบ
|
||||
ขาง
|
||||
ข่าง
|
||||
ข้าง
|
||||
ข้างๆ
|
||||
ข้างๆ คูๆ
|
||||
ข้างกระดาน
|
||||
ข้างขึ้น
|
||||
ข้างควาย
|
||||
ข้างเงิน
|
||||
ข้างแรม
|
||||
ข้างออก
|
||||
แข็ง
|
||||
แข่ง
|
||||
แข้ง
|
||||
แข้งขวา
|
||||
แข็งขัน
|
||||
แข่งขัน
|
||||
ทูลเกล้า
|
||||
ทูลเกล้าทูลกระหม่อม
|
||||
ทูลเกล้าฯ
|
||||
บุญ-หลง
|
||||
บุญญา
|
||||
บุญหลง
|
||||
ปา
|
||||
ป่า
|
||||
ป้า
|
||||
ป๊า
|
||||
ป๋า
|
||||
ปาน
|
||||
ป่าน
|
||||
ป้าน
|
||||
ป๊าน
|
||||
ป๋าน
|
||||
แป้ง
|
||||
พณิชย์
|
||||
ม้า
|
||||
ฯพณฯ
|
||||
#
|
||||
# Descending sort, using index
|
||||
#
|
||||
EXPLAIN SELECT a FROM t1 ORDER BY a DESC, id DESC;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index NULL a_id 97 NULL 96 Using index
|
||||
SELECT a FROM t1 ORDER BY a DESC, id DESC;
|
||||
a
|
||||
ฯพณฯ
|
||||
ม้า
|
||||
พณิชย์
|
||||
แป้ง
|
||||
ป๋าน
|
||||
ป๊าน
|
||||
ป้าน
|
||||
ป่าน
|
||||
ปาน
|
||||
ป๋า
|
||||
ป๊า
|
||||
ป้า
|
||||
ป่า
|
||||
ปา
|
||||
บุญหลง
|
||||
บุญญา
|
||||
บุญ-หลง
|
||||
ทูลเกล้าฯ
|
||||
ทูลเกล้าทูลกระหม่อม
|
||||
ทูลเกล้า
|
||||
แข่งขัน
|
||||
แข็งขัน
|
||||
แข้งขวา
|
||||
แข้ง
|
||||
แข่ง
|
||||
แข็ง
|
||||
ข้างออก
|
||||
ข้างแรม
|
||||
ข้างเงิน
|
||||
ข้างควาย
|
||||
ข้างขึ้น
|
||||
ข้างกระดาน
|
||||
ข้างๆ คูๆ
|
||||
ข้างๆ
|
||||
ข้าง
|
||||
ข่าง
|
||||
ขาง
|
||||
กราบ
|
||||
กก
|
||||
vice-versa
|
||||
vice-president
|
||||
vice versa
|
||||
McArthur
|
||||
Mc Mahon
|
||||
Mc Arthur
|
||||
Copenhegen
|
||||
coop
|
||||
COOP
|
||||
co-op
|
||||
CO-OP
|
||||
Canon
|
||||
C.A.F
|
||||
air@@@
|
||||
air
|
||||
aide
|
||||
Aalborg
|
||||
aah
|
||||
AAF
|
||||
AAES
|
||||
Aachen
|
||||
AAAA
|
||||
AAA
|
||||
aa
|
||||
AA
|
||||
a'
|
||||
A.Agr
|
||||
A.Ae.E.
|
||||
A.A.E.E.
|
||||
A.A.E.
|
||||
A.A.A.S.
|
||||
A.A.A.L.
|
||||
A.A.A.
|
||||
a.a.
|
||||
A.A.
|
||||
a.
|
||||
A.
|
||||
A-1
|
||||
a-
|
||||
A-
|
||||
a
|
||||
A
|
||||
9999
|
||||
๑๐ ลิตร {10 litre}
|
||||
๑๐ ลิตร [10 litre]
|
||||
๑๐ ลิตร (10 litre)
|
||||
10 ลิตร (10 litre)
|
||||
๑๐ ลิตร
|
||||
10 ลิตร
|
||||
10 litre (๑๐ ลิตร)
|
||||
10 litre (10 ลิตร)
|
||||
10 litre
|
||||
0000
|
||||
@@@air
|
||||
@@@@@
|
||||
-กระแย่ง
|
||||
-a
|
||||
DROP TABLE t1;
|
@@ -70,6 +70,7 @@ select group_concat(c1 order by c1) from t1 group by c1 collate utf8_croatian_ci
|
||||
select group_concat(c1 order by c1) from t1 group by c1 collate utf8_german2_ci;
|
||||
select group_concat(c1 order by c1) from t1 group by c1 collate utf8_unicode_520_ci;
|
||||
select group_concat(c1 order by c1) from t1 group by c1 collate utf8_vietnamese_ci;
|
||||
select group_concat(c1 order by c1) from t1 group by c1 collate utf8_thai_520_w2;
|
||||
|
||||
ALTER TABLE t1 CONVERT TO CHARACTER SET ucs2 COLLATE ucs2_bin;
|
||||
SELECT GROUP_CONCAT(c1 ORDER BY c1) FROM t1 GROUP BY c1 COLLATE ucs2_unicode_ci;
|
||||
|
38
mysql-test/t/ctype_uca_partitions.test
Normal file
38
mysql-test/t/ctype_uca_partitions.test
Normal file
@@ -0,0 +1,38 @@
|
||||
--source include/have_partition.inc
|
||||
|
||||
SET NAMES utf8;
|
||||
|
||||
CREATE TABLE t1 (c1 VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_thai_520_w2)
|
||||
PARTITION BY KEY(c1) PARTITIONS 3;
|
||||
SHOW CREATE TABLE t1;
|
||||
INSERT INTO t1 VALUES ('A'),('À'),('Á'),('Â'),('Ã'),('Ä'),('Å');
|
||||
INSERT INTO t1 VALUES ('B');
|
||||
INSERT INTO t1 VALUES ('C');
|
||||
INSERT INTO t1 VALUES ('D');
|
||||
INSERT INTO t1 VALUES ('E');
|
||||
INSERT INTO t1 VALUES ('F');
|
||||
INSERT INTO t1 VALUES ('G');
|
||||
INSERT INTO t1 VALUES ('H');
|
||||
INSERT INTO t1 VALUES ('I');
|
||||
INSERT INTO t1 VALUES ('J');
|
||||
INSERT INTO t1 VALUES ('K');
|
||||
INSERT INTO t1 VALUES ('L'),('Ĺ'),('Ļ'),('Ľ'),('Ŀ'),('Ł');
|
||||
INSERT INTO t1 VALUES ('M');
|
||||
INSERT INTO t1 VALUES ('N');
|
||||
INSERT INTO t1 VALUES ('O'),('Ò'),('Ó'),('Ô'),('Õ'),('Ö'),('Ø');
|
||||
INSERT INTO t1 VALUES ('P');
|
||||
INSERT INTO t1 VALUES ('Q');
|
||||
INSERT INTO t1 VALUES ('R');
|
||||
INSERT INTO t1 VALUES ('S');
|
||||
INSERT INTO t1 VALUES ('T');
|
||||
INSERT INTO t1 VALUES ('U');
|
||||
INSERT INTO t1 VALUES ('V');
|
||||
INSERT INTO t1 VALUES ('W');
|
||||
INSERT INTO t1 VALUES ('X');
|
||||
INSERT INTO t1 VALUES ('Y');
|
||||
INSERT INTO t1 VALUES ('Z');
|
||||
|
||||
SELECT * FROM t1 PARTITION (p0) ORDER BY c1;
|
||||
SELECT * FROM t1 PARTITION (p1) ORDER BY c1;
|
||||
SELECT * FROM t1 PARTITION (p2) ORDER BY c1;
|
||||
DROP TABLE t1;
|
34
mysql-test/t/ctype_uca_th.test
Normal file
34
mysql-test/t/ctype_uca_th.test
Normal file
@@ -0,0 +1,34 @@
|
||||
|
||||
|
||||
SET NAMES utf8;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # Testing strnxfrm
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (a VARCHAR(3) CHARACTER SET utf8 COLLATE utf8_thai_520_w2);
|
||||
INSERT INTO t1 VALUES (SPACE(0)),(SPACE(1)),(SPACE(2));
|
||||
SELECT HEX(a), HEX(WEIGHT_STRING(a AS CHAR(8))) FROM t1;
|
||||
SELECT HEX(a), HEX(WEIGHT_STRING(a AS CHAR(4))) FROM t1;
|
||||
SELECT HEX(a), HEX(WEIGHT_STRING(a AS CHAR(4) LEVEL 1)) FROM t1;
|
||||
SELECT HEX(a), HEX(WEIGHT_STRING(a AS CHAR(4) LEVEL 2)) FROM t1;
|
||||
SELECT HEX(a), HEX(WEIGHT_STRING(a AS CHAR(4) LEVEL 3)) FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a CHAR(10) CHARACTER SET utf8 COLLATE utf8_thai_520_w2);
|
||||
INSERT INTO t1 VALUES ('A'),('À'),('Á'),('Â'),('Ã'),('Ä'),('Å');
|
||||
SELECT a, HEX(WEIGHT_STRING(a LEVEL 2)) FROM t1 ORDER BY a;
|
||||
SELECT a, HEX(WEIGHT_STRING(a LEVEL 2)) FROM t1 ORDER BY a DESC;
|
||||
|
||||
ALTER TABLE t1 MODIFY a VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_thai_520_w2;
|
||||
SELECT a, HEX(WEIGHT_STRING(a LEVEL 2)) FROM t1 ORDER BY a;
|
||||
SELECT a, HEX(WEIGHT_STRING(a LEVEL 2)) FROM t1 ORDER BY a DESC;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_thai_520_w2);
|
||||
INSERT INTO t1 VALUES ('cota'),('cote'),('cotz');
|
||||
INSERT INTO t1 VALUES ('coté'),('côte'),('côté'),('cotë'),('côtë');
|
||||
SELECT * FROM t1 ORDER BY a;
|
||||
SELECT * FROM t1 ORDER BY a DESC;
|
||||
DROP TABLE t1;
|
144
mysql-test/t/ctype_utf8_th.test
Normal file
144
mysql-test/t/ctype_utf8_th.test
Normal file
@@ -0,0 +1,144 @@
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t1;
|
||||
--enable_warnings
|
||||
|
||||
#
|
||||
# Test Unicode Thai collations based on libthai testcases
|
||||
#
|
||||
|
||||
SET NAMES utf8;
|
||||
|
||||
CREATE TABLE t1 (a VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_bin);
|
||||
|
||||
INSERT INTO t1 VALUES ('-กระแย่ง');
|
||||
INSERT INTO t1 VALUES ('กก');
|
||||
INSERT INTO t1 VALUES ('กราบ');
|
||||
INSERT INTO t1 VALUES ('ข่าง');
|
||||
INSERT INTO t1 VALUES ('ข้าง');
|
||||
INSERT INTO t1 VALUES ('ข้างกระดาน');
|
||||
INSERT INTO t1 VALUES ('ข้างขึ้น');
|
||||
INSERT INTO t1 VALUES ('ข้างควาย');
|
||||
INSERT INTO t1 VALUES ('ข้างเงิน');
|
||||
INSERT INTO t1 VALUES ('ข้างแรม');
|
||||
INSERT INTO t1 VALUES ('ข้างออก');
|
||||
INSERT INTO t1 VALUES ('ข้างๆ');
|
||||
INSERT INTO t1 VALUES ('ข้างๆ คูๆ');
|
||||
INSERT INTO t1 VALUES ('ขาง');
|
||||
INSERT INTO t1 VALUES ('แข็ง');
|
||||
INSERT INTO t1 VALUES ('แข่ง');
|
||||
INSERT INTO t1 VALUES ('แข่งขัน');
|
||||
INSERT INTO t1 VALUES ('แข้ง');
|
||||
INSERT INTO t1 VALUES ('แข้งขวา');
|
||||
INSERT INTO t1 VALUES ('แข็งขัน');
|
||||
INSERT INTO t1 VALUES ('ทูลเกล้า');
|
||||
INSERT INTO t1 VALUES ('ทูลเกล้าทูลกระหม่อม');
|
||||
INSERT INTO t1 VALUES ('ทูลเกล้าฯ');
|
||||
INSERT INTO t1 VALUES ('บุญญา');
|
||||
INSERT INTO t1 VALUES ('บุญ-หลง');
|
||||
INSERT INTO t1 VALUES ('บุญหลง');
|
||||
INSERT INTO t1 VALUES ('ป่า');
|
||||
INSERT INTO t1 VALUES ('ป่าน');
|
||||
INSERT INTO t1 VALUES ('ป้า');
|
||||
INSERT INTO t1 VALUES ('ป้าน');
|
||||
INSERT INTO t1 VALUES ('ป๊า');
|
||||
INSERT INTO t1 VALUES ('ป๊าน');
|
||||
INSERT INTO t1 VALUES ('ป๋า');
|
||||
INSERT INTO t1 VALUES ('ป๋าน');
|
||||
INSERT INTO t1 VALUES ('ปา');
|
||||
INSERT INTO t1 VALUES ('ปาน');
|
||||
INSERT INTO t1 VALUES ('แป้ง');
|
||||
INSERT INTO t1 VALUES ('พณิชย์');
|
||||
INSERT INTO t1 VALUES ('ม้า');
|
||||
INSERT INTO t1 VALUES ('ฯพณฯ');
|
||||
INSERT INTO t1 VALUES ('A');
|
||||
INSERT INTO t1 VALUES ('a');
|
||||
INSERT INTO t1 VALUES ('a\'');
|
||||
INSERT INTO t1 VALUES ('A-');
|
||||
INSERT INTO t1 VALUES ('a-');
|
||||
INSERT INTO t1 VALUES ('-a');
|
||||
INSERT INTO t1 VALUES ('A.');
|
||||
INSERT INTO t1 VALUES ('a.');
|
||||
INSERT INTO t1 VALUES ('A-1');
|
||||
INSERT INTO t1 VALUES ('aa');
|
||||
INSERT INTO t1 VALUES ('AA');
|
||||
INSERT INTO t1 VALUES ('A.A.');
|
||||
INSERT INTO t1 VALUES ('a.a.');
|
||||
INSERT INTO t1 VALUES ('AAA');
|
||||
INSERT INTO t1 VALUES ('A.A.A.');
|
||||
INSERT INTO t1 VALUES ('AAAA');
|
||||
INSERT INTO t1 VALUES ('A.A.A.L.');
|
||||
INSERT INTO t1 VALUES ('A.A.A.S.');
|
||||
INSERT INTO t1 VALUES ('Aachen');
|
||||
INSERT INTO t1 VALUES ('A.A.E.');
|
||||
INSERT INTO t1 VALUES ('A.Ae.E.');
|
||||
INSERT INTO t1 VALUES ('A.A.E.E.');
|
||||
INSERT INTO t1 VALUES ('AAES');
|
||||
INSERT INTO t1 VALUES ('AAF');
|
||||
INSERT INTO t1 VALUES ('A.Agr');
|
||||
INSERT INTO t1 VALUES ('aah');
|
||||
INSERT INTO t1 VALUES ('@@@@@');
|
||||
INSERT INTO t1 VALUES ('0000');
|
||||
INSERT INTO t1 VALUES ('9999');
|
||||
INSERT INTO t1 VALUES ('Aalborg');
|
||||
INSERT INTO t1 VALUES ('aide');
|
||||
INSERT INTO t1 VALUES ('air');
|
||||
INSERT INTO t1 VALUES ('@@@air');
|
||||
INSERT INTO t1 VALUES ('air@@@');
|
||||
INSERT INTO t1 VALUES ('C.A.F');
|
||||
INSERT INTO t1 VALUES ('Canon');
|
||||
INSERT INTO t1 VALUES ('coop');
|
||||
INSERT INTO t1 VALUES ('co-op');
|
||||
INSERT INTO t1 VALUES ('COOP');
|
||||
INSERT INTO t1 VALUES ('CO-OP');
|
||||
INSERT INTO t1 VALUES ('Copenhegen');
|
||||
INSERT INTO t1 VALUES ('McArthur');
|
||||
INSERT INTO t1 VALUES ('Mc Arthur');
|
||||
INSERT INTO t1 VALUES ('Mc Mahon');
|
||||
INSERT INTO t1 VALUES ('vice-president');
|
||||
INSERT INTO t1 VALUES ('vice versa');
|
||||
INSERT INTO t1 VALUES ('vice-versa');
|
||||
INSERT INTO t1 VALUES ('10 ลิตร');
|
||||
INSERT INTO t1 VALUES ('๑๐ ลิตร');
|
||||
INSERT INTO t1 VALUES ('10 litre');
|
||||
INSERT INTO t1 VALUES ('10 litre (10 ลิตร)');
|
||||
INSERT INTO t1 VALUES ('10 ลิตร (10 litre)');
|
||||
INSERT INTO t1 VALUES ('10 litre (๑๐ ลิตร)');
|
||||
INSERT INTO t1 VALUES ('๑๐ ลิตร (10 litre)');
|
||||
INSERT INTO t1 VALUES ('๑๐ ลิตร [10 litre]');
|
||||
INSERT INTO t1 VALUES ('๑๐ ลิตร {10 litre}');
|
||||
|
||||
# Sort the table according to binary 'a'
|
||||
# To avoid problems with unpredictable order or 'AA' and 'aa'
|
||||
ALTER TABLE t1 ORDER BY a;
|
||||
|
||||
ALTER TABLE t1
|
||||
MODIFY a VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_thai_520_w2,
|
||||
ADD id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
ADD KEY a_id (a, id);
|
||||
|
||||
--echo #
|
||||
--echo # Ascending sort, using filesort
|
||||
--echo #
|
||||
EXPLAIN SELECT a FROM t1 ORDER BY a, BINARY a;
|
||||
SELECT a FROM t1 ORDER BY a, BINARY a;
|
||||
|
||||
--echo #
|
||||
--echo # Descending sort, using filesort
|
||||
--echo #
|
||||
EXPLAIN SELECT a FROM t1 ORDER BY a DESC, BINARY a DESC;
|
||||
SELECT a FROM t1 ORDER BY a DESC, BINARY a DESC;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # Ascending sort, using index
|
||||
--echo #
|
||||
EXPLAIN SELECT a FROM t1 ORDER BY a, id;
|
||||
SELECT a FROM t1 ORDER BY a, id;
|
||||
|
||||
--echo #
|
||||
--echo # Descending sort, using index
|
||||
--echo #
|
||||
EXPLAIN SELECT a FROM t1 ORDER BY a DESC, id DESC;
|
||||
SELECT a FROM t1 ORDER BY a DESC, id DESC;
|
||||
|
||||
DROP TABLE t1;
|
@@ -133,6 +133,7 @@ extern struct charset_info_st my_charset_utf8_hungarian_uca_ci;
|
||||
extern struct charset_info_st my_charset_utf8_croatian_mysql561_uca_ci;
|
||||
extern struct charset_info_st my_charset_utf8_sinhala_uca_ci;
|
||||
extern struct charset_info_st my_charset_utf8_unicode_520_ci;
|
||||
extern struct charset_info_st my_charset_utf8_thai_520_w2;
|
||||
extern struct charset_info_st my_charset_utf8_vietnamese_ci;
|
||||
extern struct charset_info_st my_charset_utf8_croatian_uca_ci;
|
||||
extern struct charset_info_st my_charset_utf8_myanmar_uca_ci;
|
||||
@@ -300,6 +301,7 @@ my_bool init_compiled_charsets(myf flags __attribute__((unused)))
|
||||
add_compiled_collation(&my_charset_utf8_croatian_mysql561_uca_ci);
|
||||
add_compiled_collation(&my_charset_utf8_sinhala_uca_ci);
|
||||
add_compiled_collation(&my_charset_utf8_unicode_520_ci);
|
||||
add_compiled_collation(&my_charset_utf8_thai_520_w2);
|
||||
add_compiled_collation(&my_charset_utf8_vietnamese_ci);
|
||||
add_compiled_collation(&my_charset_utf8_croatian_uca_ci);
|
||||
add_compiled_collation(&my_charset_utf8_myanmar_uca_ci);
|
||||
|
@@ -3536,7 +3536,7 @@ void Item_func_weight_string::fix_length_and_dec()
|
||||
{
|
||||
uint char_length;
|
||||
char_length= ((cs->state & MY_CS_STRNXFRM_BAD_NWEIGHTS) || !nweights) ?
|
||||
args[0]->max_char_length() : nweights;
|
||||
args[0]->max_char_length() : nweights * cs->levels_for_order;
|
||||
max_length= cs->coll->strnxfrmlen(cs, char_length * cs->mbmaxlen);
|
||||
}
|
||||
maybe_null= 1;
|
||||
|
@@ -40,7 +40,6 @@
|
||||
|
||||
#ifdef HAVE_CHARSET_tis620
|
||||
|
||||
#define BUFFER_MULTIPLY 4
|
||||
#define M L_MIDDLE
|
||||
#define U L_UPPER
|
||||
#define L L_LOWER
|
||||
|
11484
strings/ctype-uca.c
11484
strings/ctype-uca.c
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user