1# 2# Tests with the utf8 character set 3# 4 5--source include/have_innodb.inc 6 7--disable_warnings 8drop table if exists t1,t2; 9--enable_warnings 10set names utf8; 11 12select left(_utf8 0xD0B0D0B1D0B2,1); 13select right(_utf8 0xD0B0D0B2D0B2,1); 14 15select locate('he','hello'); 16select locate('he','hello',2); 17select locate('lo','hello',2); 18select locate('HE','hello'); 19select locate('HE','hello',2); 20select locate('LO','hello',2); 21select locate('HE','hello' collate utf8_bin); 22select locate('HE','hello' collate utf8_bin,2); 23select locate('LO','hello' collate utf8_bin,2); 24 25select locate(_utf8 0xD0B1, _utf8 0xD0B0D0B1D0B2); 26select locate(_utf8 0xD091, _utf8 0xD0B0D0B1D0B2); 27select locate(_utf8 0xD0B1, _utf8 0xD0B0D091D0B2); 28select locate(_utf8 0xD091, _utf8 0xD0B0D0B1D0B2 collate utf8_bin); 29select locate(_utf8 0xD0B1, _utf8 0xD0B0D091D0B2 collate utf8_bin); 30 31select length(_utf8 0xD0B1), bit_length(_utf8 0xD0B1), char_length(_utf8 0xD0B1); 32 33select 'a' like 'a'; 34select 'A' like 'a'; 35select 'A' like 'a' collate utf8_bin; 36select _utf8 0xD0B0D0B1D0B2 like concat(_utf8'%',_utf8 0xD0B1,_utf8 '%'); 37 38# Bug #6040: can't retrieve records with umlaut 39# characters in case insensitive manner. 40# Case insensitive search LIKE comparison 41# was broken for multibyte characters: 42select convert(_latin1'G�nter Andr�' using utf8) like CONVERT(_latin1'G�NTER%' USING utf8); 43select CONVERT(_koi8r'����' USING utf8) LIKE CONVERT(_koi8r'����' USING utf8); 44select CONVERT(_koi8r'����' USING utf8) LIKE CONVERT(_koi8r'����' USING utf8); 45 46# 47# Check the following: 48# "a" == "a " 49# "a\0" < "a" 50# "a\0" < "a " 51 52SELECT 'a' = 'a '; 53SELECT 'a\0' < 'a'; 54SELECT 'a\0' < 'a '; 55SELECT 'a\t' < 'a'; 56SELECT 'a\t' < 'a '; 57 58# 59# The same for binary collation 60# 61SELECT 'a' = 'a ' collate utf8_bin; 62SELECT 'a\0' < 'a' collate utf8_bin; 63SELECT 'a\0' < 'a ' collate utf8_bin; 64SELECT 'a\t' < 'a' collate utf8_bin; 65SELECT 'a\t' < 'a ' collate utf8_bin; 66 67CREATE TABLE t1 (a char(10) character set utf8 not null); 68INSERT INTO t1 VALUES ('a'),('a\0'),('a\t'),('a '); 69SELECT hex(a),STRCMP(a,'a'), STRCMP(a,'a ') FROM t1; 70DROP TABLE t1; 71 72# 73# Fix this, it should return 1: 74# 75#select _utf8 0xD0B0D0B1D0B2 like concat(_utf8'%',_utf8 0xD091,_utf8 '%'); 76# 77 78# 79# Bug 2367: INSERT() behaviour is different for different charsets. 80# 81select insert('txs',2,1,'hi'),insert('is ',4,0,'a'),insert('txxxxt',2,4,'es'); 82select insert("aa",100,1,"b"),insert("aa",1,3,"b"); 83 84# 85# LELF() didn't work well with utf8 in some cases too. 86# 87select char_length(left(@a:='тест',5)), length(@a), @a; 88 89 90# 91# CREATE ... SELECT 92# 93create table t1 select date_format("2004-01-19 10:10:10", "%Y-%m-%d"); 94show create table t1; 95select * from t1; 96drop table t1; 97 98# 99# Bug#22646 LC_TIME_NAMES: Assignment to non-UTF8 target fails 100# 101set names utf8; 102set LC_TIME_NAMES='fr_FR'; 103create table t1 (s1 char(20) character set latin1); 104insert into t1 values (date_format('2004-02-02','%M')); 105select hex(s1) from t1; 106drop table t1; 107create table t1 (s1 char(20) character set koi8r); 108set LC_TIME_NAMES='ru_RU'; 109insert into t1 values (date_format('2004-02-02','%M')); 110insert into t1 values (date_format('2004-02-02','%b')); 111insert into t1 values (date_format('2004-02-02','%W')); 112insert into t1 values (date_format('2004-02-02','%a')); 113select hex(s1), s1 from t1; 114drop table t1; 115set LC_TIME_NAMES='en_US'; 116 117 118# 119# Bug #2366 Wrong utf8 behaviour when data is truncated 120# 121set names koi8r; 122create table t1 (s1 char(1) character set utf8); 123insert into t1 values (_koi8r'��'); 124select s1,hex(s1),char_length(s1),octet_length(s1) from t1; 125drop table t1; 126 127create table t1 (s1 tinytext character set utf8); 128insert into t1 select repeat('a',300); 129insert into t1 select repeat('�',300); 130insert into t1 select repeat('a�',300); 131insert into t1 select repeat('�a',300); 132insert into t1 select repeat('��',300); 133select hex(s1) from t1; 134select length(s1),char_length(s1) from t1; 135drop table t1; 136 137create table t1 (s1 text character set utf8); 138insert into t1 select repeat('a',66000); 139insert into t1 select repeat('�',66000); 140insert into t1 select repeat('a�',66000); 141insert into t1 select repeat('�a',66000); 142insert into t1 select repeat('��',66000); 143select length(s1),char_length(s1) from t1; 144drop table t1; 145 146# 147# Bug #2368 Multibyte charsets do not check that incoming data is well-formed 148# 149create table t1 (s1 char(10) character set utf8); 150insert into t1 values (0x41FF); 151select hex(s1) from t1; 152drop table t1; 153 154create table t1 (s1 varchar(10) character set utf8); 155insert into t1 values (0x41FF); 156select hex(s1) from t1; 157drop table t1; 158 159create table t1 (s1 text character set utf8); 160insert into t1 values (0x41FF); 161select hex(s1) from t1; 162drop table t1; 163 164# 165# Bug 2699 166# UTF8 breaks primary keys for cols > 333 characters 167# 168--error 1071 169create table t1 (a text character set utf8, primary key(a(360))); 170 171 172# 173# Bug 2959 174# UTF8 charset breaks joins with mixed column/string constant 175# 176CREATE TABLE t1 ( a varchar(10) ) CHARACTER SET utf8; 177INSERT INTO t1 VALUES ( 'test' ); 178SELECT a.a, b.a FROM t1 a, t1 b WHERE a.a = b.a; 179SELECT a.a, b.a FROM t1 a, t1 b WHERE a.a = 'test' and b.a = 'test'; 180SELECT a.a, b.a FROM t1 a, t1 b WHERE a.a = b.a and a.a = 'test'; 181DROP TABLE t1; 182 183create table t1 (a char(255) character set utf8); 184insert into t1 values('b'),('b'); 185select * from t1 where a = 'b'; 186select * from t1 where a = 'b' and a = 'b'; 187select * from t1 where a = 'b' and a != 'b'; 188drop table t1; 189 190# 191# Testing regexp 192# 193set collation_connection=utf8_general_ci; 194--source include/ctype_regex.inc 195set names utf8; 196 197# 198# Bug #3928 regexp [[:>:]] and UTF-8 199# 200set names utf8; 201 202# This should return TRUE 203select 'вася' rlike '[[:<:]]вася[[:>:]]'; 204select 'вася ' rlike '[[:<:]]вася[[:>:]]'; 205select ' вася' rlike '[[:<:]]вася[[:>:]]'; 206select ' вася ' rlike '[[:<:]]вася[[:>:]]'; 207 208# This should return FALSE 209select 'васяz' rlike '[[:<:]]вася[[:>:]]'; 210select 'zвася' rlike '[[:<:]]вася[[:>:]]'; 211select 'zвасяz' rlike '[[:<:]]вася[[:>:]]'; 212 213# 214# Bug #4555 215# ALTER TABLE crashes mysqld with enum column collated utf8_unicode_ci 216# 217CREATE TABLE t1 (a enum ('Y', 'N') DEFAULT 'N' COLLATE utf8_unicode_ci); 218ALTER TABLE t1 ADD COLUMN b CHAR(20); 219DROP TABLE t1; 220 221# Customer Support Center issue # 3299 222# ENUM and SET multibyte fields computed their length wronly 223# when converted into a char field 224set names utf8; 225create table t1 (a enum('aaaa','проба') character set utf8); 226show create table t1; 227insert into t1 values ('проба'); 228select * from t1; 229create table t2 select ifnull(a,a) from t1; 230show create table t2; 231select * from t2; 232drop table t1; 233drop table t2; 234 235# 236# Bug 4521: unique key prefix interacts poorly with utf8 237# MYISAM: keys with prefix compression, case insensitive collation. 238# 239create table t1 (c varchar(30) character set utf8, unique(c(10))); 240insert into t1 values ('1'),('2'),('3'),('x'),('y'),('z'); 241insert into t1 values ('aaaaaaaaaa'); 242--error ER_DUP_ENTRY 243insert into t1 values ('aaaaaaaaaaa'); 244--error ER_DUP_ENTRY 245insert into t1 values ('aaaaaaaaaaaa'); 246insert into t1 values (repeat('b',20)); 247select c c1 from t1 where c='1'; 248select c c2 from t1 where c='2'; 249select c c3 from t1 where c='3'; 250select c cx from t1 where c='x'; 251select c cy from t1 where c='y'; 252select c cz from t1 where c='z'; 253select c ca10 from t1 where c='aaaaaaaaaa'; 254select c cb20 from t1 where c=repeat('b',20); 255drop table t1; 256 257# 258# Bug 4521: unique key prefix interacts poorly with utf8 259# InnoDB: keys with prefix compression, case insensitive collation. 260# 261create table t1 (c varchar(30) character set utf8, unique(c(10))) engine=innodb; 262insert into t1 values ('1'),('2'),('3'),('x'),('y'),('z'); 263insert into t1 values ('aaaaaaaaaa'); 264--error ER_DUP_ENTRY 265insert into t1 values ('aaaaaaaaaaa'); 266--error ER_DUP_ENTRY 267insert into t1 values ('aaaaaaaaaaaa'); 268insert into t1 values (repeat('b',20)); 269select c c1 from t1 where c='1'; 270select c c2 from t1 where c='2'; 271select c c3 from t1 where c='3'; 272select c cx from t1 where c='x'; 273select c cy from t1 where c='y'; 274select c cz from t1 where c='z'; 275select c ca10 from t1 where c='aaaaaaaaaa'; 276select c cb20 from t1 where c=repeat('b',20); 277drop table t1; 278# 279# Bug 4521: unique key prefix interacts poorly with utf8 280# MYISAM: fixed length keys, case insensitive collation 281# 282create table t1 (c char(3) character set utf8, unique (c(2))); 283insert into t1 values ('1'),('2'),('3'),('4'),('x'),('y'),('z'); 284insert into t1 values ('a'); 285insert into t1 values ('aa'); 286--error ER_DUP_ENTRY 287insert into t1 values ('aaa'); 288insert into t1 values ('b'); 289insert into t1 values ('bb'); 290--error ER_DUP_ENTRY 291insert into t1 values ('bbb'); 292insert into t1 values ('а'); 293insert into t1 values ('аа'); 294--error ER_DUP_ENTRY 295insert into t1 values ('ааа'); 296insert into t1 values ('б'); 297insert into t1 values ('бб'); 298--error ER_DUP_ENTRY 299insert into t1 values ('ббб'); 300insert into t1 values ('ꪪ'); 301insert into t1 values ('ꪪꪪ'); 302--error ER_DUP_ENTRY 303insert into t1 values ('ꪪꪪꪪ'); 304drop table t1; 305# 306# Bug 4521: unique key prefix interacts poorly with utf8 307# InnoDB: fixed length keys, case insensitive collation 308# 309create table t1 (c char(3) character set utf8, unique (c(2))) engine=innodb; 310insert into t1 values ('1'),('2'),('3'),('4'),('x'),('y'),('z'); 311insert into t1 values ('a'); 312insert into t1 values ('aa'); 313--error ER_DUP_ENTRY 314insert into t1 values ('aaa'); 315insert into t1 values ('b'); 316insert into t1 values ('bb'); 317--error ER_DUP_ENTRY 318insert into t1 values ('bbb'); 319insert into t1 values ('а'); 320insert into t1 values ('аа'); 321--error ER_DUP_ENTRY 322insert into t1 values ('ааа'); 323insert into t1 values ('б'); 324insert into t1 values ('бб'); 325--error ER_DUP_ENTRY 326insert into t1 values ('ббб'); 327insert into t1 values ('ꪪ'); 328insert into t1 values ('ꪪꪪ'); 329--error ER_DUP_ENTRY 330insert into t1 values ('ꪪꪪꪪ'); 331drop table t1; 332# 333# Bug 4531: unique key prefix interacts poorly with utf8 334# Check HEAP+HASH, case insensitive collation 335# 336create table t1 ( 337c char(10) character set utf8, 338unique key a using hash (c(1)) 339) engine=heap; 340show create table t1; 341insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f'); 342--error ER_DUP_ENTRY 343insert into t1 values ('aa'); 344--error ER_DUP_ENTRY 345insert into t1 values ('aaa'); 346insert into t1 values ('б'); 347--error ER_DUP_ENTRY 348insert into t1 values ('бб'); 349--error ER_DUP_ENTRY 350insert into t1 values ('ббб'); 351select c as c_all from t1 order by c; 352select c as c_a from t1 where c='a'; 353select c as c_a from t1 where c='б'; 354drop table t1; 355 356# 357# Bug 4531: unique key prefix interacts poorly with utf8 358# Check HEAP+BTREE, case insensitive collation 359# 360create table t1 ( 361c char(10) character set utf8, 362unique key a using btree (c(1)) 363) engine=heap; 364show create table t1; 365insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f'); 366--error ER_DUP_ENTRY 367insert into t1 values ('aa'); 368--error ER_DUP_ENTRY 369insert into t1 values ('aaa'); 370insert into t1 values ('б'); 371--error ER_DUP_ENTRY 372insert into t1 values ('бб'); 373--error ER_DUP_ENTRY 374insert into t1 values ('ббб'); 375select c as c_all from t1 order by c; 376select c as c_a from t1 where c='a'; 377select c as c_a from t1 where c='б'; 378drop table t1; 379 380# 381# Bug 4531: unique key prefix interacts poorly with utf8 382# Check BDB, case insensitive collation 383# 384create table t1 ( 385c char(10) character set utf8, 386unique key a (c(1)) 387) engine=innodb; 388insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f'); 389--error ER_DUP_ENTRY 390insert into t1 values ('aa'); 391--error ER_DUP_ENTRY 392insert into t1 values ('aaa'); 393insert into t1 values ('б'); 394--error ER_DUP_ENTRY 395insert into t1 values ('бб'); 396--error ER_DUP_ENTRY 397insert into t1 values ('ббб'); 398select c as c_all from t1 order by c; 399select c as c_a from t1 where c='a'; 400select c as c_a from t1 where c='б'; 401drop table t1; 402 403# 404# Bug 4521: unique key prefix interacts poorly with utf8 405# MYISAM: keys with prefix compression, binary collation. 406# 407create table t1 (c varchar(30) character set utf8 collate utf8_bin, unique(c(10))); 408insert into t1 values ('1'),('2'),('3'),('x'),('y'),('z'); 409insert into t1 values ('aaaaaaaaaa'); 410--error ER_DUP_ENTRY 411insert into t1 values ('aaaaaaaaaaa'); 412--error ER_DUP_ENTRY 413insert into t1 values ('aaaaaaaaaaaa'); 414insert into t1 values (repeat('b',20)); 415select c c1 from t1 where c='1'; 416select c c2 from t1 where c='2'; 417select c c3 from t1 where c='3'; 418select c cx from t1 where c='x'; 419select c cy from t1 where c='y'; 420select c cz from t1 where c='z'; 421select c ca10 from t1 where c='aaaaaaaaaa'; 422select c cb20 from t1 where c=repeat('b',20); 423drop table t1; 424 425# 426# Bug 4521: unique key prefix interacts poorly with utf8 427# MYISAM: fixed length keys, binary collation 428# 429create table t1 (c char(3) character set utf8 collate utf8_bin, unique (c(2))); 430insert into t1 values ('1'),('2'),('3'),('4'),('x'),('y'),('z'); 431insert into t1 values ('a'); 432insert into t1 values ('aa'); 433--error ER_DUP_ENTRY 434insert into t1 values ('aaa'); 435insert into t1 values ('b'); 436insert into t1 values ('bb'); 437--error ER_DUP_ENTRY 438insert into t1 values ('bbb'); 439insert into t1 values ('а'); 440insert into t1 values ('аа'); 441--error ER_DUP_ENTRY 442insert into t1 values ('ааа'); 443insert into t1 values ('б'); 444insert into t1 values ('бб'); 445--error ER_DUP_ENTRY 446insert into t1 values ('ббб'); 447insert into t1 values ('ꪪ'); 448insert into t1 values ('ꪪꪪ'); 449--error ER_DUP_ENTRY 450insert into t1 values ('ꪪꪪꪪ'); 451drop table t1; 452 453# 454# Bug 4531: unique key prefix interacts poorly with utf8 455# Check HEAP+HASH, binary collation 456# 457create table t1 ( 458c char(10) character set utf8 collate utf8_bin, 459unique key a using hash (c(1)) 460) engine=heap; 461show create table t1; 462insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f'); 463--error ER_DUP_ENTRY 464insert into t1 values ('aa'); 465--error ER_DUP_ENTRY 466insert into t1 values ('aaa'); 467insert into t1 values ('б'); 468--error ER_DUP_ENTRY 469insert into t1 values ('бб'); 470--error ER_DUP_ENTRY 471insert into t1 values ('ббб'); 472select c as c_all from t1 order by c; 473select c as c_a from t1 where c='a'; 474select c as c_a from t1 where c='б'; 475drop table t1; 476 477# 478# Bug 4531: unique key prefix interacts poorly with utf8 479# Check HEAP+BTREE, binary collation 480# 481create table t1 ( 482c char(10) character set utf8 collate utf8_bin, 483unique key a using btree (c(1)) 484) engine=heap; 485show create table t1; 486insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f'); 487--error ER_DUP_ENTRY 488insert into t1 values ('aa'); 489--error ER_DUP_ENTRY 490insert into t1 values ('aaa'); 491insert into t1 values ('б'); 492--error ER_DUP_ENTRY 493insert into t1 values ('бб'); 494--error ER_DUP_ENTRY 495insert into t1 values ('ббб'); 496select c as c_all from t1 order by c; 497select c as c_a from t1 where c='a'; 498select c as c_a from t1 where c='б'; 499drop table t1; 500 501# 502# Bug 4531: unique key prefix interacts poorly with utf8 503# Check BDB, binary collation 504# 505create table t1 ( 506c char(10) character set utf8 collate utf8_bin, 507unique key a (c(1)) 508) engine=innodb; 509insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f'); 510--error ER_DUP_ENTRY 511insert into t1 values ('aa'); 512--error ER_DUP_ENTRY 513insert into t1 values ('aaa'); 514insert into t1 values ('б'); 515--error ER_DUP_ENTRY 516insert into t1 values ('бб'); 517--error ER_DUP_ENTRY 518insert into t1 values ('ббб'); 519select c as c_all from t1 order by c; 520select c as c_a from t1 where c='a'; 521select c as c_a from t1 where c='б'; 522drop table t1; 523 524 525# Bug#4594: column index make = failed for gbk, but like works 526# Check MYISAM 527# 528create table t1 ( 529 str varchar(255) character set utf8 not null, 530 key str (str(2)) 531) engine=myisam; 532INSERT INTO t1 VALUES ('str'); 533INSERT INTO t1 VALUES ('str2'); 534select * from t1 where str='str'; 535drop table t1; 536 537# Bug#4594: column index make = failed for gbk, but like works 538# Check InnoDB 539# 540create table t1 ( 541 str varchar(255) character set utf8 not null, 542 key str (str(2)) 543) engine=innodb; 544INSERT INTO t1 VALUES ('str'); 545INSERT INTO t1 VALUES ('str2'); 546select * from t1 where str='str'; 547drop table t1; 548 549# the same for HEAP+BTREE 550# 551 552create table t1 ( 553 str varchar(255) character set utf8 not null, 554 key str using btree (str(2)) 555) engine=heap; 556INSERT INTO t1 VALUES ('str'); 557INSERT INTO t1 VALUES ('str2'); 558select * from t1 where str='str'; 559drop table t1; 560 561# the same for HEAP+HASH 562# 563 564create table t1 ( 565 str varchar(255) character set utf8 not null, 566 key str using hash (str(2)) 567) engine=heap; 568INSERT INTO t1 VALUES ('str'); 569INSERT INTO t1 VALUES ('str2'); 570select * from t1 where str='str'; 571drop table t1; 572 573# the same for BDB 574# 575 576create table t1 ( 577 str varchar(255) character set utf8 not null, 578 key str (str(2)) 579) engine=innodb; 580INSERT INTO t1 VALUES ('str'); 581INSERT INTO t1 VALUES ('str2'); 582select * from t1 where str='str'; 583drop table t1; 584 585# 586# Bug #5397: Crash with varchar binary and LIKE 587# 588CREATE TABLE t1 (a varchar(32) BINARY) CHARACTER SET utf8; 589INSERT INTO t1 VALUES ('test'); 590SELECT a FROM t1 WHERE a LIKE '%te'; 591DROP TABLE t1; 592 593# 594# Bug #5723: length(<varchar utf8 field>) returns varying results 595# 596SET NAMES utf8; 597CREATE TABLE t1 ( 598 subject varchar(255) character set utf8 collate utf8_unicode_ci, 599 p varchar(15) character set utf8 600) ENGINE=InnoDB DEFAULT CHARSET=latin1; 601INSERT INTO t1 VALUES ('谷川俊二と申しますが、インターネット予約の会員登録をしましたところ、メールアドレスを間違えてしまい会員IDが受け取ることが出来ませんでした。間違えアドレスはtani-shun@n.vodafone.ne.jpを書き込みました。どうすればよいですか? その他、住所等は間違えありません。連絡ください。よろしくお願いします。m(__)m','040312-000057'); 602INSERT INTO t1 VALUES ('aaa','bbb'); 603SELECT length(subject) FROM t1; 604SELECT length(subject) FROM t1 ORDER BY 1; 605DROP TABLE t1; 606 607# 608# Bug #5832 SELECT doesn't return records in some cases 609# 610CREATE TABLE t1 ( 611 id int unsigned NOT NULL auto_increment, 612 list_id smallint unsigned NOT NULL, 613 term TEXT NOT NULL, 614 PRIMARY KEY(id), 615 INDEX(list_id, term(4)) 616) ENGINE=MYISAM CHARSET=utf8; 617INSERT INTO t1 SET list_id = 1, term = "letterc"; 618INSERT INTO t1 SET list_id = 1, term = "letterb"; 619INSERT INTO t1 SET list_id = 1, term = "lettera"; 620INSERT INTO t1 SET list_id = 1, term = "letterd"; 621SELECT id FROM t1 WHERE (list_id = 1) AND (term = "letterc"); 622SELECT id FROM t1 WHERE (list_id = 1) AND (term = "letterb"); 623SELECT id FROM t1 WHERE (list_id = 1) AND (term = "lettera"); 624SELECT id FROM t1 WHERE (list_id = 1) AND (term = "letterd"); 625DROP TABLE t1; 626 627 628# 629# Bug #6043 erratic searching for diacriticals in indexed MyISAM UTF-8 table 630# 631SET NAMES latin1; 632CREATE TABLE t1 ( 633 id int unsigned NOT NULL auto_increment, 634 list_id smallint unsigned NOT NULL, 635 term text NOT NULL, 636 PRIMARY KEY(id), 637 INDEX(list_id, term(19)) 638) ENGINE=MyISAM CHARSET=utf8; 639INSERT INTO t1 set list_id = 1, term = "test�test"; 640INSERT INTO t1 set list_id = 1, term = "testetest"; 641INSERT INTO t1 set list_id = 1, term = "test�test"; 642SELECT id, term FROM t1 where (list_id = 1) AND (term = "test�test"); 643SELECT id, term FROM t1 where (list_id = 1) AND (term = "testetest"); 644SELECT id, term FROM t1 where (list_id = 1) AND (term = "test�test"); 645DROP TABLE t1; 646 647# 648# Bug #6019 SELECT tries to use too short prefix index on utf8 data 649# 650set names utf8; 651create table t1 ( 652 a int primary key, 653 b varchar(6), 654 index b3(b(3)) 655) engine=innodb character set=utf8; 656insert into t1 values(1,'foo'),(2,'foobar'); 657select * from t1 where b like 'foob%'; 658alter table t1 engine=innodb; 659select * from t1 where b like 'foob%'; 660drop table t1; 661 662# 663# Test for calculate_interval_lengths() function 664# 665create table t1 ( 666 a enum('петя','вася','анюта') character set utf8 not null default 'анюта', 667 b set('петя','вася','анюта') character set utf8 not null default 'анюта' 668); 669create table t2 select concat(a,_utf8'') as a, concat(b,_utf8'')as b from t1; 670show create table t2; 671drop table t2; 672drop table t1; 673 674# 675# Bug #6787 LIKE not working properly with _ and utf8 data 676# 677select 'c' like '\_' as want0; 678 679# 680# SUBSTR with negative offset didn't work with multi-byte strings 681# 682SELECT SUBSTR('вася',-2); 683 684 685# 686# Bug #7730 Server crash using soundex on an utf8 table 687# 688create table t1 (id integer, a varchar(100) character set utf8 collate utf8_unicode_ci); 689insert into t1 values (1, 'Test'); 690select * from t1 where soundex(a) = soundex('Test'); 691select * from t1 where soundex(a) = soundex('TEST'); 692select * from t1 where soundex(a) = soundex('test'); 693drop table t1; 694 695# 696# Bug#22638 SOUNDEX broken for international characters 697# 698select soundex(_utf8 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB); 699select hex(soundex(_utf8 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB)); 700select soundex(_utf8 0xD091D092D093); 701select hex(soundex(_utf8 0xD091D092D093)); 702 703 704SET collation_connection='utf8_general_ci'; 705-- source include/ctype_filesort.inc 706-- source include/ctype_like_escape.inc 707-- source include/ctype_german.inc 708SET collation_connection='utf8_bin'; 709-- source include/ctype_filesort.inc 710-- source include/ctype_like_escape.inc 711 712# 713# Bug #7874 CONCAT() gives wrong results mixing 714# latin1 field and utf8 string literals 715# 716CREATE TABLE t1 ( 717 user varchar(255) NOT NULL default '' 718) ENGINE=MyISAM DEFAULT CHARSET=latin1; 719INSERT INTO t1 VALUES ('one'),('two'); 720SELECT CHARSET('a'); 721SELECT user, CONCAT('<', user, '>') AS c FROM t1; 722DROP TABLE t1; 723 724# 725# Bug#8785 726# the same problem with the above, but with nested CONCATs 727# 728create table t1 (f1 varchar(1) not null) default charset utf8; 729insert into t1 values (''), (''); 730select concat(concat(_latin1'->',f1),_latin1'<-') from t1; 731drop table t1; 732 733# 734# Bug#8385: utf8_general_ci treats Cyrillic letters I and SHORT I as the same 735# 736select convert(_koi8r'�' using utf8) < convert(_koi8r'�' using utf8); 737 738# 739# Bugs#5980: NULL requires a characterset in a union 740# 741set names latin1; 742create table t1 (a varchar(10)) character set utf8; 743insert into t1 values ('test'); 744select ifnull(a,'') from t1; 745drop table t1; 746select repeat(_utf8'+',3) as h union select NULL; 747select ifnull(NULL, _utf8'string'); 748 749# 750# Bug#9509 Optimizer: wrong result after AND with comparisons 751# 752set names utf8; 753create table t1 (s1 char(5) character set utf8 collate utf8_lithuanian_ci); 754insert into t1 values ('I'),('K'),('Y'); 755select * from t1 where s1 < 'K' and s1 = 'Y'; 756select * from t1 where 'K' > s1 and s1 = 'Y'; 757drop table t1; 758 759create table t1 (s1 char(5) character set utf8 collate utf8_czech_ci); 760insert into t1 values ('c'),('d'),('h'),('ch'),('CH'),('cH'),('Ch'),('i'); 761select * from t1 where s1 > 'd' and s1 = 'CH'; 762select * from t1 where 'd' < s1 and s1 = 'CH'; 763select * from t1 where s1 = 'cH' and s1 <> 'ch'; 764select * from t1 where 'cH' = s1 and s1 <> 'ch'; 765drop table t1; 766 767# 768# Bug#10714: Inserting double value into utf8 column crashes server 769# 770create table t1 (a varchar(255)) default character set utf8; 771insert into t1 values (1.0); 772drop table t1; 773 774# 775# Bug#10253 compound index length and utf8 char set 776# produces invalid query results 777# 778create table t1 ( 779 id int not null, 780 city varchar(20) not null, 781 key (city(7),id) 782) character set=utf8; 783insert into t1 values (1,'Durban North'); 784insert into t1 values (2,'Durban'); 785select * from t1 where city = 'Durban'; 786select * from t1 where city = 'Durban '; 787drop table t1; 788 789# 790# Bug #11819 CREATE TABLE with a SET DEFAULT 0 and UTF8 crashes server. 791# 792--error 1067 793create table t1 (x set('A', 'B') default 0) character set utf8; 794--error 1067 795create table t1 (x enum('A', 'B') default 0) character set utf8; 796 797 798# 799# Test for bug #11167: join for utf8 varchar value longer than 255 bytes 800# 801 802SET NAMES UTF8; 803 804CREATE TABLE t1 ( 805 `id` int(20) NOT NULL auto_increment, 806 `country` varchar(100) NOT NULL default '', 807 `shortcode` varchar(100) NOT NULL default '', 808 `operator` varchar(100) NOT NULL default '', 809 `momid` varchar(30) NOT NULL default '', 810 `keyword` varchar(160) NOT NULL default '', 811 `content` varchar(160) NOT NULL default '', 812 `second_token` varchar(160) default NULL, 813 `gateway_id` int(11) NOT NULL default '0', 814 `created` datetime NOT NULL default '0000-00-00 00:00:00', 815 `msisdn` varchar(15) NOT NULL default '', 816 PRIMARY KEY (`id`), 817 UNIQUE KEY `MSCCSPK_20030521130957121` (`momid`), 818 KEY `IX_mobile_originated_message_keyword` (`keyword`), 819 KEY `IX_mobile_originated_message_created` (`created`), 820 KEY `IX_mobile_originated_message_support` (`msisdn`,`momid`,`keyword`,`gateway_id`,`created`) 821) ENGINE=MyISAM DEFAULT CHARSET=utf8; 822 823INSERT INTO t1 VALUES 824(1,'blah','464','aaa','fkc1c9ilc20x0hgae7lx6j09','ERR','ERR Имри.Афимим.Аеимимримдмримрмрирор имримримримр имридм ирбднримрфмририримрфмфмим.Ад.Д имдимримрад.Адимримримрмдиримримримр м.Дадимфшьмримд им.Адимимрн имадми','ИМРИ.АФИМИМ.АЕИМИМРИМДМРИМРМРИРОР',3,'2005-06-01 17:30:43','1234567890'), 825(2,'blah','464','aaa','haxpl2ilc20x00bj4tt2m5ti','11','11 g','G',3,'2005-06-02 22:43:10','1234567890'); 826 827CREATE TABLE t2 ( 828 `msisdn` varchar(15) NOT NULL default '', 829 `operator_id` int(11) NOT NULL default '0', 830 `created` datetime NOT NULL default '0000-00-00 00:00:00', 831 UNIQUE KEY `PK_user` (`msisdn`) 832) ENGINE=InnoDB DEFAULT CHARSET=utf8; 833 834INSERT INTO t2 VALUES ('1234567890',2,'2005-05-24 13:53:25'); 835 836SELECT content, t2.msisdn FROM t1, t2 WHERE t1.msisdn = '1234567890'; 837 838DROP TABLE t1,t2; 839 840# 841# Bug#11591: CHAR column with utf8 does not work properly 842# (more chars than expected) 843# 844create table t1 (a char(20) character set utf8); 845insert into t1 values ('123456'),('андрей'); 846alter table t1 modify a char(2) character set utf8; 847select char_length(a), length(a), a from t1 order by a; 848drop table t1; 849 850# 851# Bugs#12611 852# ESCAPE + LIKE do not work when the escape char is a multibyte one 853# 854set names utf8; 855select 'andre%' like 'andreñ%' escape 'ñ'; 856 857# 858# Bugs#11754: SET NAMES utf8 followed by SELECT "A\\" LIKE "A\\" returns 0 859# 860set names utf8; 861select 'a\\' like 'a\\'; 862select 'aa\\' like 'a%\\'; 863 864create table t1 (a char(10), key(a)) character set utf8; 865insert into t1 values ("a"),("abc"),("abcd"),("hello"),("test"); 866select * from t1 where a like "abc%"; 867select * from t1 where a like concat("abc","%"); 868select * from t1 where a like "ABC%"; 869select * from t1 where a like "test%"; 870select * from t1 where a like "te_t"; 871select * from t1 where a like "%a%"; 872select * from t1 where a like "%abcd%"; 873select * from t1 where a like "%abc\d%"; 874drop table t1; 875 876 877# 878# Bug#9557 MyISAM utf8 table crash 879# 880CREATE TABLE t1 ( 881 a varchar(255) NOT NULL default '', 882 KEY a (a) 883) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE utf8_general_ci; 884insert into t1 values (_utf8 0xe880bd); 885insert into t1 values (_utf8 0x5b); 886select hex(a) from t1; 887drop table t1; 888 889# 890# Bug#13751 find_in_set: Illegal mix of collations 891# 892set names 'latin1'; 893create table t1 (a varchar(255)) default charset=utf8; 894select * from t1 where find_in_set('-1', a); 895drop table t1; 896 897# 898# Bug#13233: select distinct char(column) fails with utf8 899# 900create table t1 (a int); 901insert into t1 values (48),(49),(50); 902set names utf8; 903select distinct char(a) from t1; 904drop table t1; 905 906# 907# Bug#15581: COALESCE function truncates mutli-byte TINYTEXT values 908# 909CREATE TABLE t1 (t TINYTEXT CHARACTER SET utf8); 910INSERT INTO t1 VALUES(REPEAT('a', 100)); 911CREATE TEMPORARY TABLE t2 SELECT COALESCE(t) AS bug FROM t1; 912SELECT LENGTH(bug) FROM t2; 913DROP TABLE t2; 914DROP TABLE t1; 915 916# 917# Bug#17313: N'xxx' and _utf8'xxx' are not equivalent 918# 919CREATE TABLE t1 (item varchar(255)) default character set utf8; 920INSERT INTO t1 VALUES (N'\\'); 921INSERT INTO t1 VALUES (_utf8'\\'); 922INSERT INTO t1 VALUES (N'Cote d\'Ivoire'); 923INSERT INTO t1 VALUES (_utf8'Cote d\'Ivoire'); 924SELECT item FROM t1 ORDER BY item; 925DROP TABLE t1; 926 927# 928# Bug#17705: Corruption of compressed index when index length changes between 929# 254 and 256 930# 931 932SET NAMES utf8; 933DROP TABLE IF EXISTS t1; 934CREATE TABLE t1(a VARCHAR(255), KEY(a)) ENGINE=MyISAM DEFAULT CHARSET=utf8; 935INSERT INTO t1 VALUES('uuABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'); 936INSERT INTO t1 VALUES('uu'); 937check table t1; 938INSERT INTO t1 VALUES('uU'); 939check table t1; 940INSERT INTO t1 VALUES('uu'); 941check table t1; 942INSERT INTO t1 VALUES('uuABC'); 943check table t1; 944INSERT INTO t1 VALUES('UuABC'); 945check table t1; 946INSERT INTO t1 VALUES('uuABC'); 947check table t1; 948alter table t1 add b int; 949INSERT INTO t1 VALUES('uuABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',1); 950INSERT INTO t1 VALUES('uuABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',2); 951delete from t1 where b=1; 952INSERT INTO t1 VALUES('UUABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',1); 953check table t1; 954INSERT INTO t1 VALUES('uuABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',3); 955INSERT INTO t1 VALUES('uuABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',4); 956delete from t1 where b=3; 957INSERT INTO t1 VALUES('uUABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',3); 958check table t1; 959drop table t1; 960 961# 962# Bug#20471 LIKE search fails with indexed utf8 char column 963# 964set names utf8; 965create table t1 (s1 char(5) character set utf8); 966insert into t1 values 967('a'),('b'),(null),('ペテルグル'),('ü'),('Y'); 968create index it1 on t1 (s1); 969select s1 as before_delete_general_ci from t1 where s1 like 'ペテ%'; 970delete from t1 where s1 = 'Y'; 971select s1 as after_delete_general_ci from t1 where s1 like 'ペテ%'; 972drop table t1; 973 974set names utf8; 975create table t1 (s1 char(5) character set utf8 collate utf8_unicode_ci); 976insert into t1 values 977('a'),('b'),(null),('ペテルグル'),('ü'),('Y'); 978create index it1 on t1 (s1); 979select s1 as before_delete_unicode_ci from t1 where s1 like 'ペテ%'; 980delete from t1 where s1 = 'Y'; 981select s1 as after_delete_unicode_ci from t1 where s1 like 'ペテ%'; 982drop table t1; 983 984set names utf8; 985create table t1 (s1 char(5) character set utf8 collate utf8_bin); 986insert into t1 values 987('a'),('b'),(null),('ペテルグル'),('ü'),('Y'); 988create index it1 on t1 (s1); 989select s1 as before_delete_bin from t1 where s1 like 'ペテ%'; 990delete from t1 where s1 = 'Y'; 991select s1 as after_delete_bin from t1 where s1 like 'ペテ%'; 992drop table t1; 993 994# additional tests from duplicate bug#20744 MySQL return no result 995 996set names utf8; 997create table t1 (a varchar(30) not null primary key) 998engine=innodb default character set utf8 collate utf8_general_ci; 999insert into t1 values ('あいうえおかきくけこさしすせそ'); 1000insert into t1 values ('さしすせそかきくけこあいうえお'); 1001select a as gci1 from t1 where a like 'さしすせそかきくけこあいうえお%'; 1002select a as gci2 from t1 where a like 'あいうえおかきくけこさしすせそ'; 1003drop table t1; 1004 1005set names utf8; 1006create table t1 (a varchar(30) not null primary key) 1007engine=innodb default character set utf8 collate utf8_unicode_ci; 1008insert into t1 values ('あいうえおかきくけこさしすせそ'); 1009insert into t1 values ('さしすせそかきくけこあいうえお'); 1010select a as uci1 from t1 where a like 'さしすせそかきくけこあいうえお%'; 1011select a as uci2 from t1 where a like 'あいうえおかきくけこさしすせそ'; 1012drop table t1; 1013 1014set names utf8; 1015create table t1 (a varchar(30) not null primary key) 1016engine=innodb default character set utf8 collate utf8_bin; 1017insert into t1 values ('あいうえおかきくけこさしすせそ'); 1018insert into t1 values ('さしすせそかきくけこあいうえお'); 1019select a as bin1 from t1 where a like 'さしすせそかきくけこあいうえお%'; 1020select a as bin2 from t1 where a like 'あいうえおかきくけこさしすせそ'; 1021drop table t1; 1022 1023 1024 1025# 1026# Bug#14896: Comparison with a key in a partial index over mb chararacter field 1027# 1028 1029SET NAMES utf8; 1030CREATE TABLE t1 (id int PRIMARY KEY, 1031 a varchar(16) collate utf8_unicode_ci NOT NULL default '', 1032 b int, 1033 f varchar(128) default 'XXX', 1034 INDEX (a(4)) 1035) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; 1036INSERT INTO t1(id, a, b) VALUES 1037 (1, 'cccc', 50), (2, 'cccc', 70), (3, 'cccc', 30), 1038 (4, 'cccc', 30), (5, 'cccc', 20), (6, 'bbbbbb', 40), 1039 (7, 'dddd', 30), (8, 'aaaa', 10), (9, 'aaaa', 50), 1040 (10, 'eeeee', 40), (11, 'bbbbbb', 60); 1041 1042SELECT id, a, b FROM t1; 1043 1044SELECT id, a, b FROM t1 WHERE a BETWEEN 'aaaa' AND 'bbbbbb'; 1045 1046SELECT id, a FROM t1 WHERE a='bbbbbb'; 1047SELECT id, a FROM t1 WHERE a='bbbbbb' ORDER BY b; 1048 1049DROP TABLE t1; 1050 1051# 1052# Bug#16674: LIKE predicate for a utf8 character set column 1053# 1054 1055SET NAMES utf8; 1056 1057CREATE TABLE t1 ( 1058 a CHAR(13) DEFAULT '', 1059 INDEX(a) 1060) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; 1061INSERT INTO t1 VALUES 1062 ('Käli Käli 2-4'), ('Käli Käli 2-4'), 1063 ('Käli Käli 2+4'), ('Käli Käli 2+4'), 1064 ('Käli Käli 2-6'), ('Käli Käli 2-6'); 1065INSERT INTO t1 SELECT * FROM t1; 1066 1067CREATE TABLE t2 ( 1068 a CHAR(13) DEFAULT '', 1069 INDEX(a) 1070) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; 1071 1072INSERT INTO t2 VALUES 1073 ('Kali Kali 2-4'), ('Kali Kali 2-4'), 1074 ('Kali Kali 2+4'), ('Kali Kali 2+4'), 1075 ('Kali Kali 2-6'), ('Kali Kali 2-6'); 1076INSERT INTO t2 SELECT * FROM t2; 1077 1078SELECT a FROM t1 WHERE a LIKE 'Käli Käli 2+4'; 1079SELECT a FROM t2 WHERE a LIKE 'Kali Kali 2+4'; 1080 1081EXPLAIN SELECT a FROM t1 WHERE a LIKE 'Käli Käli 2+4'; 1082EXPLAIN SELECT a FROM t1 WHERE a = 'Käli Käli 2+4'; 1083EXPLAIN SELECT a FROM t2 WHERE a LIKE 'Kali Kali 2+4'; 1084EXPLAIN SELECT a FROM t2 WHERE a = 'Kali Kali 2+4'; 1085 1086DROP TABLE t1,t2; 1087 1088CREATE TABLE t1 ( 1089 a char(255) DEFAULT '', 1090 KEY(a(10)) 1091) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; 1092INSERT INTO t1 VALUES ('Käli Käli 2-4'); 1093SELECT * FROM t1 WHERE a LIKE 'Käli Käli 2%'; 1094INSERT INTO t1 VALUES ('Käli Käli 2-4'); 1095SELECT * FROM t1 WHERE a LIKE 'Käli Käli 2%'; 1096DROP TABLE t1; 1097 1098CREATE TABLE t1 ( 1099 a char(255) DEFAULT '' 1100) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; 1101INSERT INTO t1 VALUES ('Käli Käli 2-4'); 1102INSERT INTO t1 VALUES ('Käli Käli 2-4'); 1103SELECT * FROM t1 WHERE a LIKE 'Käli Käli 2%'; 1104ALTER TABLE t1 ADD KEY (a(10)); 1105SELECT * FROM t1 WHERE a LIKE 'Käli Käli 2%'; 1106DROP TABLE t1; 1107 1108# 1109# Bug#18359: LIKE predicate for a 'utf8' text column with a partial index 1110# (see bug #16674 as well) 1111# 1112 1113SET NAMES latin2; 1114 1115CREATE TABLE t1 ( 1116 id int(11) NOT NULL default '0', 1117 tid int(11) NOT NULL default '0', 1118 val text NOT NULL, 1119 INDEX idx(tid, val(10)) 1120) ENGINE=MyISAM DEFAULT CHARSET=utf8; 1121 1122INSERT INTO t1 VALUES 1123 (40988,72,'VOLN� ADSL'),(41009,72,'VOLN� ADSL'), 1124 (41032,72,'VOLN� ADSL'),(41038,72,'VOLN� ADSL'), 1125 (41063,72,'VOLN� ADSL'),(41537,72,'VOLN� ADSL Office'), 1126 (42141,72,'VOLN� ADSL'),(42565,72,'VOLN� ADSL Combi'), 1127 (42749,72,'VOLN� ADSL'),(44205,72,'VOLN� ADSL'); 1128 1129SELECT * FROM t1 WHERE tid=72 and val LIKE 'VOLNY ADSL'; 1130SELECT * FROM t1 WHERE tid=72 and val LIKE 'VOLN� ADSL'; 1131SELECT * FROM t1 WHERE tid=72 and val LIKE '%VOLN� ADSL'; 1132 1133ALTER TABLE t1 DROP KEY idx; 1134ALTER TABLE t1 ADD KEY idx (tid,val(11)); 1135 1136SELECT * FROM t1 WHERE tid=72 and val LIKE 'VOLN� ADSL'; 1137 1138DROP TABLE t1; 1139 1140# 1141# Bug 20709: problem with utf8 fields in temporary tables 1142# 1143 1144create table t1(a char(200) collate utf8_unicode_ci NOT NULL default '') 1145 default charset=utf8 collate=utf8_unicode_ci; 1146insert into t1 values (unhex('65')), (unhex('C3A9')), (unhex('65')); 1147-- disable_query_log 1148-- disable_result_log 1149analyze table t1; 1150-- enable_result_log 1151-- enable_query_log 1152explain select distinct a from t1; 1153select distinct a from t1; 1154explain select a from t1 group by a; 1155select a from t1 group by a; 1156drop table t1; 1157 1158# 1159# Bug #20204: "order by" changes the results returned 1160# 1161 1162create table t1(a char(10)) default charset utf8; 1163insert into t1 values ('123'), ('456'); 1164-- disable_query_log 1165-- disable_result_log 1166analyze table t1; 1167-- enable_result_log 1168-- enable_query_log 1169explain 1170 select substr(Z.a,-1), Z.a from t1 as Y join t1 as Z on Y.a=Z.a order by 1; 1171select substr(Z.a,-1), Z.a from t1 as Y join t1 as Z on Y.a=Z.a order by 1; 1172drop table t1; 1173 1174# 1175# Bug #34349: Passing invalid parameter to CHAR() in an ORDER BY causes 1176# MySQL to hang 1177# 1178 1179SET CHARACTER SET utf8; 1180SHOW VARIABLES LIKE 'character\_set\_%'; 1181CREATE DATABASE crashtest DEFAULT CHARACTER SET utf8 COLLATE utf8_bin; 1182USE crashtest; 1183CREATE TABLE crashtest (crash char(10)) DEFAULT CHARSET=utf8; 1184INSERT INTO crashtest VALUES ('35'), ('36'), ('37'); 1185SELECT * FROM crashtest ORDER BY CHAR(crash USING utf8); 1186INSERT INTO crashtest VALUES ('-1000'); 1187-- disable_query_log 1188-- disable_result_log 1189ANALYZE TABLE crashtest; 1190-- enable_result_log 1191-- enable_query_log 1192EXPLAIN SELECT * FROM crashtest ORDER BY CHAR(crash USING utf8); 1193SELECT * FROM crashtest ORDER BY CHAR(crash USING utf8); 1194DROP TABLE crashtest; 1195DROP DATABASE crashtest; 1196USE test; 1197SET CHARACTER SET default; 1198 1199# End of 4.1 tests 1200 1201# 1202# Test for bug #11484: wrong results for a DISTINCT varchar column in uft8. 1203# 1204 1205CREATE TABLE t1(id varchar(20) NOT NULL) DEFAULT CHARSET=utf8; 1206INSERT INTO t1 VALUES ('xxx'), ('aa'), ('yyy'), ('aa'); 1207 1208SELECT id FROM t1; 1209SELECT DISTINCT id FROM t1; 1210SELECT DISTINCT id FROM t1 ORDER BY id; 1211 1212DROP TABLE t1; 1213 1214# 1215# Bug#20095 Changing length of VARCHAR field with UTF8 1216# collation does not truncate values 1217# 1218create table t1 ( 1219 a varchar(26) not null 1220) default character set utf8; 1221insert into t1 (a) values ('abcdefghijklmnopqrstuvwxyz'); 1222select * from t1; 1223# varchar to varchar 1224alter table t1 change a a varchar(20) character set utf8 not null; 1225select * from t1; 1226# varchar to char 1227alter table t1 change a a char(15) character set utf8 not null; 1228select * from t1; 1229# char to char 1230alter table t1 change a a char(10) character set utf8 not null; 1231select * from t1; 1232# char to varchar 1233alter table t1 change a a varchar(5) character set utf8 not null; 1234select * from t1; 1235drop table t1; 1236 1237# 1238# Check that do_varstring2_mb produces a warning 1239# 1240create table t1 ( 1241 a varchar(4000) not null 1242) default character set utf8; 1243insert into t1 values (repeat('a',4000)); 1244alter table t1 change a a varchar(3000) character set utf8 not null; 1245select length(a) from t1; 1246drop table t1; 1247 1248 1249# 1250# Bug#10504: Character set does not support traditional mode 1251# Bug#14146: CHAR(...USING ...) and CONVERT(CHAR(...) USING...) 1252# produce different results 1253# 1254set names utf8; 1255# correct value 1256select hex(char(1 using utf8)); 1257select char(0xd1,0x8f using utf8); 1258select char(0xd18f using utf8); 1259select char(53647 using utf8); 1260# incorrect value: return with warning 1261select char(0xff,0x8f using utf8); 1262select convert(char(0xff,0x8f) using utf8); 1263# incorrect value in strict mode: return NULL with "Error" level warning 1264set sql_mode=traditional; 1265select char(0xff,0x8f using utf8); 1266select char(195 using utf8); 1267select char(196 using utf8); 1268select char(2557 using utf8); 1269select convert(char(0xff,0x8f) using utf8); 1270 1271# 1272# Check convert + char + using 1273# 1274select hex(convert(char(2557 using latin1) using utf8)); 1275 1276# 1277# char() without USING returns "binary" by default, any argument is ok 1278# 1279select hex(char(195)); 1280select hex(char(196)); 1281select hex(char(2557)); 1282 1283 1284 1285# 1286# Bug#12891: UNION doesn't return DISTINCT result for multi-byte characters 1287# 1288set names utf8; 1289create table t1 (a char(1)) default character set utf8; 1290create table t2 (a char(1)) default character set utf8; 1291insert into t1 values('a'),('a'),(0xE38182),(0xE38182); 1292insert into t1 values('i'),('i'),(0xE38184),(0xE38184); 1293select * from t1 union distinct select * from t2; 1294drop table t1,t2; 1295 1296 1297# 1298# Bug#12371: executing prepared statement fails (illegal mix of collations) 1299# 1300set names utf8; 1301create table t1 (a char(10), b varchar(10)); 1302insert into t1 values ('bar','kostja'); 1303insert into t1 values ('kostja','bar'); 1304prepare my_stmt from "select * from t1 where a=?"; 1305set @a:='bar'; 1306execute my_stmt using @a; 1307set @a:='kostja'; 1308execute my_stmt using @a; 1309set @a:=null; 1310execute my_stmt using @a; 1311drop table if exists t1; 1312 1313 1314# 1315# Bug#21505 Create view - illegal mix of collation for operation 'UNION' 1316# 1317--disable_warnings 1318drop table if exists t1; 1319drop view if exists v1, v2; 1320--enable_warnings 1321set names utf8; 1322create table t1(col1 varchar(12) character set utf8 collate utf8_unicode_ci); 1323insert into t1 values('t1_val'); 1324create view v1 as select 'v1_val' as col1; 1325select coercibility(col1), collation(col1) from v1; 1326create view v2 as select col1 from v1 union select col1 from t1; 1327select coercibility(col1), collation(col1)from v2; 1328drop view v1, v2; 1329create view v1 as select 'v1_val' collate utf8_swedish_ci as col1; 1330select coercibility(col1), collation(col1) from v1; 1331create view v2 as select col1 from v1 union select col1 from t1; 1332select coercibility(col1), collation(col1) from v2; 1333drop view v1, v2; 1334drop table t1; 1335 1336# 1337# Check conversion of NCHAR strings to subset (e.g. latin1). 1338# Conversion is possible if string repertoire is ASCII. 1339# Conversion is not possible if the string have extended characters 1340# 1341set names utf8; 1342create table t1 (a varchar(10) character set latin1, b int); 1343insert into t1 values ('a',1); 1344select concat(a, if(b>10, N'x', N'y')) from t1; 1345--error 1267 1346select concat(a, if(b>10, N'æ', N'ß')) from t1; 1347drop table t1; 1348 1349# Conversion tests for character set introducers 1350set names utf8; 1351create table t1 (a varchar(10) character set latin1, b int); 1352insert into t1 values ('a',1); 1353select concat(a, if(b>10, _utf8'x', _utf8'y')) from t1; 1354--error 1267 1355select concat(a, if(b>10, _utf8'æ', _utf8'ß')) from t1; 1356drop table t1; 1357 1358# Conversion tests for introducer + HEX string 1359set names utf8; 1360create table t1 (a varchar(10) character set latin1, b int); 1361insert into t1 values ('a',1); 1362select concat(a, if(b>10, _utf8 0x78, _utf8 0x79)) from t1; 1363--error 1267 1364select concat(a, if(b>10, _utf8 0xC3A6, _utf8 0xC3AF)) from t1; 1365drop table t1; 1366 1367# Conversion tests for "text_literal TEXT_STRING_literal" syntax structure 1368set names utf8; 1369create table t1 (a varchar(10) character set latin1, b int); 1370insert into t1 values ('a',1); 1371select concat(a, if(b>10, 'x' 'x', 'y' 'y')) from t1; 1372--error 1267 1373select concat(a, if(b>10, 'x' 'æ', 'y' 'ß')) from t1; 1374drop table t1; 1375 1376# 1377# Bug#19960: Inconsistent results when joining 1378# InnoDB tables using partial UTF8 indexes 1379# 1380 1381CREATE TABLE t1 ( 1382 colA int(11) NOT NULL, 1383 colB varchar(255) character set utf8 NOT NULL, 1384 PRIMARY KEY (colA) 1385) ENGINE=InnoDB DEFAULT CHARSET=latin1; 1386INSERT INTO t1 (colA, colB) VALUES (1, 'foo'), (2, 'foo bar'); 1387CREATE TABLE t2 ( 1388 colA int(11) NOT NULL, 1389 colB varchar(255) character set utf8 NOT NULL, 1390 KEY bad (colA,colB(3)) 1391) ENGINE=InnoDB DEFAULT CHARSET=latin1; 1392INSERT INTO t2 (colA, colB) VALUES (1, 'foo'),(2, 'foo bar'); 1393SELECT * FROM t1 JOIN t2 ON t1.colA=t2.colA AND t1.colB=t2.colB 1394WHERE t1.colA < 3; 1395DROP TABLE t1, t2; 1396 1397# 1398# Bug#29205: truncation of UTF8 values when the UNION statement 1399# forces collation to the binary charset 1400# 1401 1402SELECT 'н1234567890' UNION SELECT _binary '1'; 1403SELECT 'н1234567890' UNION SELECT 1; 1404 1405SELECT '1' UNION SELECT 'н1234567890'; 1406SELECT 1 UNION SELECT 'н1234567890'; 1407 1408CREATE TABLE t1 (c VARCHAR(11)) CHARACTER SET utf8; 1409CREATE TABLE t2 (b CHAR(1) CHARACTER SET binary, i INT); 1410 1411INSERT INTO t1 (c) VALUES ('н1234567890'); 1412INSERT INTO t2 (b, i) VALUES ('1', 1); 1413 1414SELECT c FROM t1 UNION SELECT b FROM t2; 1415SELECT c FROM t1 UNION SELECT i FROM t2; 1416 1417SELECT b FROM t2 UNION SELECT c FROM t1; 1418SELECT i FROM t2 UNION SELECT c FROM t1; 1419 1420DROP TABLE t1, t2; 1421 1422# 1423# Bug#30982: CHAR(..USING..) can return a not-well-formed string 1424# Bug #30986: Character set introducer followed by a HEX string can return bad result 1425# 1426set sql_mode=traditional; 1427select hex(char(0xFF using utf8)); 1428select hex(convert(0xFF using utf8)); 1429--error ER_INVALID_CHARACTER_STRING 1430select hex(_utf8 0x616263FF); 1431--error ER_INVALID_CHARACTER_STRING 1432select hex(_utf8 X'616263FF'); 1433--error ER_INVALID_CHARACTER_STRING 1434select hex(_utf8 B'001111111111'); 1435--error ER_INVALID_CHARACTER_STRING 1436select (_utf8 X'616263FF'); 1437set sql_mode=default; 1438select hex(char(0xFF using utf8)); 1439select hex(convert(0xFF using utf8)); 1440--error ER_INVALID_CHARACTER_STRING 1441select hex(_utf8 0x616263FF); 1442--error ER_INVALID_CHARACTER_STRING 1443select hex(_utf8 X'616263FF'); 1444--error ER_INVALID_CHARACTER_STRING 1445select hex(_utf8 B'001111111111'); 1446--error ER_INVALID_CHARACTER_STRING 1447select (_utf8 X'616263FF'); 1448 1449--echo # 1450--echo # Bug#44131 Binary-mode "order by" returns records in incorrect order for UTF-8 strings 1451--echo # 1452CREATE TABLE t1 (id int not null primary key, name varchar(10)) character set utf8; 1453INSERT INTO t1 VALUES 1454(2,'一二三01'),(3,'一二三09'),(4,'一二三02'),(5,'一二三08'), 1455(6,'一二三11'),(7,'一二三91'),(8,'一二三21'),(9,'一二三81'); 1456SELECT * FROM t1 ORDER BY BINARY(name); 1457DROP TABLE t1; 1458 1459# 1460# Bug #36772: When using UTF8, CONVERT with GROUP BY returns truncated results 1461# 1462CREATE TABLE t1 (a INT NOT NULL, b INT NOT NULL); 1463INSERT INTO t1 VALUES (70000, 1092), (70001, 1085), (70002, 1065); 1464SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) FROM t1 GROUP BY b; 1465SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) FROM t1; 1466ALTER TABLE t1 ADD UNIQUE (b); 1467SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) FROM t1 GROUP BY b; 1468DROP INDEX b ON t1; 1469SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) FROM t1 GROUP BY b; 1470ALTER TABLE t1 ADD INDEX (b); 1471SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) from t1 GROUP BY b; 1472DROP TABLE t1; 1473 1474--echo End of 5.0 tests 1475 1476 1477# 1478# Bug #57272: crash in rpad() when using utf8 1479# 1480SELECT LENGTH(RPAD(0.0115E88, 61297, _utf8'яэюя')); 1481SELECT LENGTH(RPAD(0.0115E88, 61297, _utf8'йцуя')); 1482SELECT HEX(RPAD(0x20, 2, _utf8 0xD18F)); 1483SELECT HEX(RPAD(0x20, 4, _utf8 0xD18F)); 1484SELECT HEX(LPAD(0x20, 2, _utf8 0xD18F)); 1485SELECT HEX(LPAD(0x20, 4, _utf8 0xD18F)); 1486 1487SELECT HEX(RPAD(_utf8 0xD18F, 3, 0x20)); 1488SELECT HEX(LPAD(_utf8 0xD18F, 3, 0x20)); 1489 1490SELECT HEX(INSERT(_utf8 0xD18F, 2, 1, 0x20)); 1491SELECT HEX(INSERT(_utf8 0xD18FD18E, 2, 1, 0x20)); 1492 1493--echo # 1494--echo # Bug#11752408 - 43593: DUMP/BACKUP/RESTORE/UPGRADE TOOLS FAILS BECAUSE OF UTF8_GENERAL_CI 1495--echo # 1496CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_general_mysql500_ci); 1497INSERT INTO t1 VALUES ('a'),('r'),('s'),(_latin1 0xDF),(_latin1 0xF7),('t'),('z'); 1498SELECT * FROM t1 ORDER BY a; 1499SELECT a, COUNT(*) FROM t1 GROUP BY a; 1500DROP TABLE t1; 1501 1502--echo End of 5.1 tests 1503 1504 1505--echo Start of 5.4 tests 1506 1507# 1508# WL#1213: utf8mb3 is an alias for utf8 1509# 1510SET NAMES utf8mb3; 1511SHOW VARIABLES LIKE 'character_set_results%'; 1512CREATE TABLE t1 (a CHAR CHARACTER SET utf8mb3 COLLATE utf8mb3_bin); 1513SHOW CREATE TABLE t1; 1514DROP TABLE t1; 1515SELECT _utf8mb3'test'; 1516 1517# 1518# Bug#26180: Can't add columns to tables created with utf8 text indexes 1519# 1520CREATE TABLE t1 ( 1521 clipid INT NOT NULL, 1522 Tape TINYTEXT, 1523 PRIMARY KEY (clipid), 1524 KEY tape(Tape(255)) 1525) CHARACTER SET=utf8; 1526ALTER TABLE t1 ADD mos TINYINT DEFAULT 0 AFTER clipid; 1527SHOW CREATE TABLE t1; 1528DROP TABLE t1; 1529 1530# 1531# Bug#26474: Add Sinhala script (Sri Lanka) collation to MySQL 1532# 1533--disable_warnings 1534DROP TABLE IF EXISTS t1; 1535--enable_warnings 1536CREATE TABLE t1 ( 1537 predicted_order int NOT NULL, 1538 utf8_encoding VARCHAR(10) NOT NULL 1539) CHARACTER SET utf8; 1540INSERT INTO t1 VALUES (19, x'E0B696'), (30, x'E0B69AE0B798'), (61, x'E0B6AF'), (93, x'E0B799'), (52, x'E0B6A6'), (73, x'E0B6BBE0B78AE2808D'), (3, x'E0B686'), (56, x'E0B6AA'), (55, x'E0B6A9'), (70, x'E0B6B9'), (94, x'E0B79A'), (80, x'E0B785'), (25, x'E0B69AE0B791'), (48, x'E0B6A2'), (13, x'E0B690'), (86, x'E0B793'), (91, x'E0B79F'), (81, x'E0B786'), (79, x'E0B784'), (14, x'E0B691'), (99, x'E0B78A'), (8, x'E0B68B'), (68, x'E0B6B7'), (22, x'E0B69A'), (16, x'E0B693'), (33, x'E0B69AE0B7B3'), (38, x'E0B69AE0B79D'), (21, x'E0B683'), (11, x'E0B68E'), (77, x'E0B782'), (40, x'E0B69AE0B78A'), (101, x'E0B78AE2808DE0B6BB'), (35, x'E0B69AE0B79A'), (1, x'E0B7B4'), (9, x'E0B68C'), (96, x'E0B79C'), (6, x'E0B689'), (95, x'E0B79B'), (88, x'E0B796'), (64, x'E0B6B3'), (26, x'E0B69AE0B792'), (82, x'E0B78F'), (28, x'E0B69AE0B794'), (39, x'E0B69AE0B79E'), (97, x'E0B79D'), (2, x'E0B685'), (75, x'E0B780'), (34, x'E0B69AE0B799'), (69, x'E0B6B8'), (83, x'E0B790'), (18, x'E0B695'), (90, x'E0B7B2'), (17, x'E0B694'), (72, x'E0B6BB'), (66, x'E0B6B5'), (59, x'E0B6AD'), (44, x'E0B69E'), (15, x'E0B692'), (23, x'E0B69AE0B78F'), (65, x'E0B6B4'), (42, x'E0B69C'), (63, x'E0B6B1'), (85, x'E0B792'), (47, x'E0B6A1'), (49, x'E0B6A3'), (92, x'E0B7B3'), (78, x'E0B783'), (36, x'E0B69AE0B79B'), (4, x'E0B687'), (24, x'E0B69AE0B790'), (87, x'E0B794'), (37, x'E0B69AE0B79C'), (32, x'E0B69AE0B79F'), (29, x'E0B69AE0B796'), (43, x'E0B69D'), (62, x'E0B6B0'), (100, x'E0B78AE2808DE0B6BA'), (60, x'E0B6AE'), (45, x'E0B69F'), (12, x'E0B68F'), (46, x'E0B6A0'), (50, x'E0B6A5'), (51, x'E0B6A4'), (5, x'E0B688'), (76, x'E0B781'), (89, x'E0B798'), (74, x'E0B6BD'), (10, x'E0B68D'), (57, x'E0B6AB'), (71, x'E0B6BA'), (58, x'E0B6AC'), (27, x'E0B69AE0B793'), (54, x'E0B6A8'), (84, x'E0B791'), (31, x'E0B69AE0B7B2'), (98, x'E0B79E'), (53, x'E0B6A7'), (41, x'E0B69B'), (67, x'E0B6B6'), (7, x'E0B68A'), (20, x'E0B682'); 1541SELECT predicted_order, hex(utf8_encoding) FROM t1 ORDER BY utf8_encoding COLLATE utf8_sinhala_ci; 1542DROP TABLE t1; 1543# 1544# Postfix for Bug#26474 1545# 1546SET NAMES utf8 COLLATE utf8_sinhala_ci; 1547CREATE TABLE t1 (s1 VARCHAR(10) COLLATE utf8_sinhala_ci); 1548INSERT INTO t1 VALUES ('a'),('ae'),('af'); 1549SELECT s1,hex(s1) FROM t1 ORDER BY s1; 1550SELECT * FROM t1 ORDER BY s1; 1551DROP TABLE t1; 1552 1553--echo End of 5.4 tests 1554 1555--echo # 1556--echo # Start of 5.5 tests 1557--echo # 1558 1559--echo # 1560--echo # Bug#52520 Difference in tinytext utf column metadata 1561--echo # 1562CREATE TABLE t1 ( 1563 s1 TINYTEXT CHARACTER SET utf8, 1564 s2 TEXT CHARACTER SET utf8, 1565 s3 MEDIUMTEXT CHARACTER SET utf8, 1566 s4 LONGTEXT CHARACTER SET utf8 1567); 1568--enable_metadata 1569SET NAMES utf8, @@character_set_results=NULL; 1570SELECT *, HEX(s1) FROM t1; 1571SET NAMES latin1; 1572SELECT *, HEX(s1) FROM t1; 1573SET NAMES utf8; 1574SELECT *, HEX(s1) FROM t1; 1575--disable_metadata 1576CREATE TABLE t2 AS SELECT CONCAT(s1) FROM t1; 1577SHOW CREATE TABLE t2; 1578DROP TABLE t1, t2; 1579 1580 1581SET NAMES utf8; 1582--source include/ctype_numconv.inc 1583 1584--echo # 1585--echo # Bug#57687 crash when reporting duplicate group_key error and utf8 1586--echo # Make sure to modify this when Bug#58081 is fixed. 1587--echo # 1588SET NAMES utf8; 1589CREATE TABLE t1 (a INT); 1590INSERT INTO t1 VALUES (0), (0), (1), (0), (0); 1591SELECT COUNT(*) FROM t1, t1 t2 1592GROUP BY INSERT('', t2.a, t1.a, (@@global.max_binlog_size)); 1593DROP TABLE t1; 1594 1595--echo # 1596--echo # Bug#11764503 (Bug#57341) Query in EXPLAIN EXTENDED shows wrong characters 1597--echo # 1598# Emulate utf8 client erroneously started with --default-character-set=latin1, 1599# as in the bug report. EXPLAIN output should still be pretty readable 1600SET NAMES latin1; 1601EXPLAIN EXTENDED SELECT 'abcdÁÂÃÄÅ', _latin1'abcdÁÂÃÄÅ', _utf8'abcdÁÂÃÄÅ' AS u; 1602# Test normal utf8 1603SET NAMES utf8; 1604EXPLAIN EXTENDED SELECT 'abcdÁÂÃÄÅ', _latin1'abcdÁÂÃÄÅ', _utf8'abcdÁÂÃÄÅ'; 1605 1606--echo # 1607--echo # Bug#11750518 41090: ORDER BY TRUNCATES GROUP_CONCAT RESULT 1608--echo # 1609 1610SET NAMES utf8; 1611SELECT id, CHAR_LENGTH(GROUP_CONCAT(body)) AS l 1612FROM (SELECT 'a' AS id, REPEAT('foo bar', 100) AS body 1613UNION ALL 1614SELECT 'a' AS id, REPEAT('bla bla', 100) AS body) t1 1615GROUP BY id 1616ORDER BY l DESC; 1617 1618--echo # 1619--echo # MDEV-7649 wrong result when comparing utf8 column with an invalid literal 1620--echo # 1621 1622SET NAMES utf8 COLLATE utf8_general_ci; 1623--let ENGINE=InnoDB 1624--source include/ctype_utf8_ilseq.inc 1625--let ENGINE=MyISAM 1626--source include/ctype_utf8_ilseq.inc 1627--let ENGINE=HEAP 1628--source include/ctype_utf8_ilseq.inc 1629 1630--echo # 1631--echo # End of 5.5 tests 1632--echo # 1633 1634--echo # 1635--echo # Start of 5.6 tests 1636--echo # 1637 1638--echo # 1639--echo # WL#3664 WEIGHT_STRING 1640--echo # 1641 1642set names utf8; 1643--source include/weight_string.inc 1644--source include/weight_string_euro.inc 1645--source include/weight_string_l1.inc 1646 1647set @@collation_connection=utf8_bin; 1648--source include/weight_string.inc 1649--source include/weight_string_euro.inc 1650--source include/weight_string_l1.inc 1651 1652--echo # 1653--echo # Checking strnxfrm() with odd length 1654--echo # 1655set max_sort_length=5; 1656select @@max_sort_length; 1657create table t1 (a varchar(128) character set utf8 collate utf8_general_ci); 1658insert into t1 values ('a'),('b'),('c'); 1659select * from t1 order by a; 1660alter table t1 modify a varchar(128) character set utf8 collate utf8_bin; 1661select * from t1 order by a; 1662drop table t1; 1663set max_sort_length=default; 1664 1665--echo # 1666--echo # Bugs#12635232: VALGRIND WARNINGS: IS_IPV6, IS_IPV4, INET6_ATON, 1667--echo # INET6_NTOA + MULTIBYTE CHARSET. 1668--echo # 1669 1670SET NAMES utf8; 1671--source include/ctype_inet.inc 1672 1673--echo # 1674--echo # End of 5.6 tests 1675--echo # 1676 1677