Loading myisam/mi_search.c +12 −3 Original line number Diff line number Diff line Loading @@ -396,9 +396,18 @@ int _mi_prefix_search(MI_INFO *info, register MI_KEYDEF *keyinfo, uchar *page, matched=prefix_len+left; if (sort_order) { for (my_flag=0;left;left--) if ((my_flag= (int) sort_order[*vseg++] - (int) sort_order[*k++])) break; } else { for (my_flag=0;left;left--) if ((my_flag= (int) *vseg++ - (int) *k++)) break; } if (my_flag>0) /* mismatch */ break; Loading mysql-test/r/binary.result +2 −0 Original line number Diff line number Diff line Loading @@ -59,8 +59,10 @@ concat("-",a,"-",b,"-") -hello-hello- select concat("-",a,"-",b,"-") from t1 where b="hello "; concat("-",a,"-",b,"-") -hello-hello- select concat("-",a,"-",b,"-") from t1 ignore index (b) where b="hello "; concat("-",a,"-",b,"-") -hello-hello- alter table t1 modify b tinytext not null, drop key b, add key (b(100)); select concat("-",a,"-",b,"-") from t1; concat("-",a,"-",b,"-") Loading mysql-test/r/ctype_utf8.result +92 −0 Original line number Diff line number Diff line Loading @@ -397,3 +397,95 @@ select c as c_a from t1 where c='б'; c_a б drop table t1; create table t1 (c varchar(30) character set utf8 collate utf8_bin, unique(c(10))); insert into t1 values ('1'),('2'),('3'),('x'),('y'),('z'); insert into t1 values ('aaaaaaaaaa'); insert into t1 values ('aaaaaaaaaaa'); ERROR 23000: Duplicate entry 'aaaaaaaaaaa' for key 1 insert into t1 values ('aaaaaaaaaaaa'); ERROR 23000: Duplicate entry 'aaaaaaaaaaaa' for key 1 insert into t1 values (repeat('b',20)); select c c1 from t1 where c='1'; c1 1 select c c2 from t1 where c='2'; c2 2 select c c3 from t1 where c='3'; c3 3 select c cx from t1 where c='x'; cx x select c cy from t1 where c='y'; cy y select c cz from t1 where c='z'; cz z select c ca10 from t1 where c='aaaaaaaaaa'; ca10 aaaaaaaaaa select c cb20 from t1 where c=repeat('b',20); cb20 bbbbbbbbbbbbbbbbbbbb drop table t1; create table t1 (c char(3) character set utf8 collate utf8_bin, unique (c(2))); insert into t1 values ('1'),('2'),('3'),('4'),('x'),('y'),('z'); insert into t1 values ('a'); insert into t1 values ('aa'); insert into t1 values ('aaa'); ERROR 23000: Duplicate entry 'aaa' for key 1 insert into t1 values ('b'); insert into t1 values ('bb'); insert into t1 values ('bbb'); ERROR 23000: Duplicate entry 'bbb' for key 1 insert into t1 values ('а'); insert into t1 values ('аа'); insert into t1 values ('ааа'); ERROR 23000: Duplicate entry 'ааа' for key 1 insert into t1 values ('б'); insert into t1 values ('бб'); insert into t1 values ('ббб'); ERROR 23000: Duplicate entry 'ббб' for key 1 insert into t1 values ('ꪪ'); insert into t1 values ('ꪪꪪ'); insert into t1 values ('ꪪꪪꪪ'); ERROR 23000: Duplicate entry 'ꪪꪪ' for key 1 drop table t1; create table t1 ( c char(10) character set utf8 collate utf8_bin, unique key a using btree (c(1)) ) engine=heap; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `c` char(10) character set utf8 collate utf8_bin default NULL, UNIQUE KEY `a` TYPE BTREE (`c`(1)) ) ENGINE=HEAP DEFAULT CHARSET=latin1 insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f'); insert into t1 values ('aa'); ERROR 23000: Duplicate entry 'aa' for key 1 insert into t1 values ('aaa'); ERROR 23000: Duplicate entry 'aaa' for key 1 insert into t1 values ('б'); insert into t1 values ('бб'); ERROR 23000: Duplicate entry 'б' for key 1 insert into t1 values ('ббб'); ERROR 23000: Duplicate entry 'б' for key 1 select c as c_all from t1 order by c; c_all a b c d e f б select c as c_a from t1 where c='a'; c_a a select c as c_a from t1 where c='б'; c_a б drop table t1; mysql-test/r/endspace.result +1 −1 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ select 'a a' > 'a', 'a \0' < 'a'; 1 1 select binary 'a a' > 'a', binary 'a \0' > 'a', binary 'a\0' > 'a'; binary 'a a' > 'a' binary 'a \0' > 'a' binary 'a\0' > 'a' 1 1 1 1 0 0 create table t1 (text1 varchar(32) not NULL, KEY key1 (text1)); insert into t1 values ('teststring'), ('nothing'), ('teststring\t'); check table t1; Loading mysql-test/r/myisam.result +1 −0 Original line number Diff line number Diff line Loading @@ -413,6 +413,7 @@ aaa . select concat(a,'.') from t1 where binary a='aaa'; concat(a,'.') aaa . aaa. update t1 set a='bbb' where a='aaa'; select concat(a,'.') from t1; concat(a,'.') Loading Loading
myisam/mi_search.c +12 −3 Original line number Diff line number Diff line Loading @@ -396,9 +396,18 @@ int _mi_prefix_search(MI_INFO *info, register MI_KEYDEF *keyinfo, uchar *page, matched=prefix_len+left; if (sort_order) { for (my_flag=0;left;left--) if ((my_flag= (int) sort_order[*vseg++] - (int) sort_order[*k++])) break; } else { for (my_flag=0;left;left--) if ((my_flag= (int) *vseg++ - (int) *k++)) break; } if (my_flag>0) /* mismatch */ break; Loading
mysql-test/r/binary.result +2 −0 Original line number Diff line number Diff line Loading @@ -59,8 +59,10 @@ concat("-",a,"-",b,"-") -hello-hello- select concat("-",a,"-",b,"-") from t1 where b="hello "; concat("-",a,"-",b,"-") -hello-hello- select concat("-",a,"-",b,"-") from t1 ignore index (b) where b="hello "; concat("-",a,"-",b,"-") -hello-hello- alter table t1 modify b tinytext not null, drop key b, add key (b(100)); select concat("-",a,"-",b,"-") from t1; concat("-",a,"-",b,"-") Loading
mysql-test/r/ctype_utf8.result +92 −0 Original line number Diff line number Diff line Loading @@ -397,3 +397,95 @@ select c as c_a from t1 where c='б'; c_a б drop table t1; create table t1 (c varchar(30) character set utf8 collate utf8_bin, unique(c(10))); insert into t1 values ('1'),('2'),('3'),('x'),('y'),('z'); insert into t1 values ('aaaaaaaaaa'); insert into t1 values ('aaaaaaaaaaa'); ERROR 23000: Duplicate entry 'aaaaaaaaaaa' for key 1 insert into t1 values ('aaaaaaaaaaaa'); ERROR 23000: Duplicate entry 'aaaaaaaaaaaa' for key 1 insert into t1 values (repeat('b',20)); select c c1 from t1 where c='1'; c1 1 select c c2 from t1 where c='2'; c2 2 select c c3 from t1 where c='3'; c3 3 select c cx from t1 where c='x'; cx x select c cy from t1 where c='y'; cy y select c cz from t1 where c='z'; cz z select c ca10 from t1 where c='aaaaaaaaaa'; ca10 aaaaaaaaaa select c cb20 from t1 where c=repeat('b',20); cb20 bbbbbbbbbbbbbbbbbbbb drop table t1; create table t1 (c char(3) character set utf8 collate utf8_bin, unique (c(2))); insert into t1 values ('1'),('2'),('3'),('4'),('x'),('y'),('z'); insert into t1 values ('a'); insert into t1 values ('aa'); insert into t1 values ('aaa'); ERROR 23000: Duplicate entry 'aaa' for key 1 insert into t1 values ('b'); insert into t1 values ('bb'); insert into t1 values ('bbb'); ERROR 23000: Duplicate entry 'bbb' for key 1 insert into t1 values ('а'); insert into t1 values ('аа'); insert into t1 values ('ааа'); ERROR 23000: Duplicate entry 'ааа' for key 1 insert into t1 values ('б'); insert into t1 values ('бб'); insert into t1 values ('ббб'); ERROR 23000: Duplicate entry 'ббб' for key 1 insert into t1 values ('ꪪ'); insert into t1 values ('ꪪꪪ'); insert into t1 values ('ꪪꪪꪪ'); ERROR 23000: Duplicate entry 'ꪪꪪ' for key 1 drop table t1; create table t1 ( c char(10) character set utf8 collate utf8_bin, unique key a using btree (c(1)) ) engine=heap; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `c` char(10) character set utf8 collate utf8_bin default NULL, UNIQUE KEY `a` TYPE BTREE (`c`(1)) ) ENGINE=HEAP DEFAULT CHARSET=latin1 insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f'); insert into t1 values ('aa'); ERROR 23000: Duplicate entry 'aa' for key 1 insert into t1 values ('aaa'); ERROR 23000: Duplicate entry 'aaa' for key 1 insert into t1 values ('б'); insert into t1 values ('бб'); ERROR 23000: Duplicate entry 'б' for key 1 insert into t1 values ('ббб'); ERROR 23000: Duplicate entry 'б' for key 1 select c as c_all from t1 order by c; c_all a b c d e f б select c as c_a from t1 where c='a'; c_a a select c as c_a from t1 where c='б'; c_a б drop table t1;
mysql-test/r/endspace.result +1 −1 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ select 'a a' > 'a', 'a \0' < 'a'; 1 1 select binary 'a a' > 'a', binary 'a \0' > 'a', binary 'a\0' > 'a'; binary 'a a' > 'a' binary 'a \0' > 'a' binary 'a\0' > 'a' 1 1 1 1 0 0 create table t1 (text1 varchar(32) not NULL, KEY key1 (text1)); insert into t1 values ('teststring'), ('nothing'), ('teststring\t'); check table t1; Loading
mysql-test/r/myisam.result +1 −0 Original line number Diff line number Diff line Loading @@ -413,6 +413,7 @@ aaa . select concat(a,'.') from t1 where binary a='aaa'; concat(a,'.') aaa . aaa. update t1 set a='bbb' where a='aaa'; select concat(a,'.') from t1; concat(a,'.') Loading