mirror of
https://github.com/MariaDB/server.git
synced 2025-05-02 19:25:03 +03:00

Fix for binary collations for MyISAM and HEAP BTREE. This patch also changes trailing spaces behaviour for binary collations. Binary collations now have PAD characteristic too.
119 lines
3.1 KiB
Plaintext
119 lines
3.1 KiB
Plaintext
drop table if exists t1,t2;
|
|
create table t1 (name char(20) not null, primary key (name));
|
|
create table t2 (name char(20) binary not null, primary key (name));
|
|
insert into t1 values ("å");
|
|
insert into t1 values ("ä");
|
|
insert into t1 values ("ö");
|
|
insert into t2 select * from t1;
|
|
select * from t1 order by name;
|
|
name
|
|
å
|
|
ä
|
|
ö
|
|
select concat("*",name,"*") from t1 order by 1;
|
|
concat("*",name,"*")
|
|
*å*
|
|
*ä*
|
|
*ö*
|
|
select min(name),min(concat("*",name,"*")),max(name),max(concat("*",name,"*")) from t1;
|
|
min(name) min(concat("*",name,"*")) max(name) max(concat("*",name,"*"))
|
|
å *å* ö *ö*
|
|
select * from t2 order by name;
|
|
name
|
|
ä
|
|
å
|
|
ö
|
|
select concat("*",name,"*") from t2 order by 1;
|
|
concat("*",name,"*")
|
|
*ä*
|
|
*å*
|
|
*ö*
|
|
select min(name),min(concat("*",name,"*")),max(name),max(concat("*",name,"*")) from t2;
|
|
min(name) min(concat("*",name,"*")) max(name) max(concat("*",name,"*"))
|
|
ä *ä* ö *ö*
|
|
select name from t1 where name between 'Ä' and 'Ö';
|
|
name
|
|
ä
|
|
ö
|
|
select name from t2 where name between 'ä' and 'ö';
|
|
name
|
|
ä
|
|
å
|
|
ö
|
|
select name from t2 where name between 'Ä' and 'Ö';
|
|
name
|
|
drop table t1,t2;
|
|
create table t1 (a char(10) not null, b char(10) binary not null,key (a), key(b));
|
|
insert into t1 values ("hello ","hello "),("hello2 ","hello2 ");
|
|
select concat("-",a,"-",b,"-") from t1 where a="hello";
|
|
concat("-",a,"-",b,"-")
|
|
-hello-hello-
|
|
select concat("-",a,"-",b,"-") from t1 where a="hello ";
|
|
concat("-",a,"-",b,"-")
|
|
-hello-hello-
|
|
select concat("-",a,"-",b,"-") from t1 ignore index (a) where a="hello ";
|
|
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 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,"-")
|
|
-hello-hello-
|
|
-hello2-hello2-
|
|
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-
|
|
drop table t1;
|
|
create table t1 (b char(8));
|
|
insert into t1 values(NULL);
|
|
select b from t1 where binary b like '';
|
|
b
|
|
select b from t1 group by binary b like '';
|
|
b
|
|
NULL
|
|
select b from t1 having binary b like '';
|
|
b
|
|
drop table t1;
|
|
create table t1 (a char(15) binary, b binary(15));
|
|
insert into t1 values ('aaa','bbb'),('AAA','BBB');
|
|
select upper(a),upper(b) from t1;
|
|
upper(a) upper(b)
|
|
AAA bbb
|
|
AAA BBB
|
|
select lower(a),lower(b) from t1;
|
|
lower(a) lower(b)
|
|
aaa bbb
|
|
aaa BBB
|
|
select * from t1 where upper(a)='AAA';
|
|
a b
|
|
aaa bbb
|
|
AAA BBB
|
|
select * from t1 where lower(a)='aaa';
|
|
a b
|
|
aaa bbb
|
|
AAA BBB
|
|
select * from t1 where upper(b)='BBB';
|
|
a b
|
|
AAA BBB
|
|
select * from t1 where lower(b)='bbb';
|
|
a b
|
|
aaa bbb
|
|
select charset(a), charset(b), charset(binary 'ccc') from t1 limit 1;
|
|
charset(a) charset(b) charset(binary 'ccc')
|
|
latin1 binary latin1
|
|
select collation(a), collation(b), collation(binary 'ccc') from t1 limit 1;
|
|
collation(a) collation(b) collation(binary 'ccc')
|
|
latin1_bin binary latin1_bin
|
|
drop table t1;
|