mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 13:32:33 +01:00
67ce247965
Renamed HA_VAR_LENGTH to HA_VAR_LENGTH_PART Renamed in all files FIELD_TYPE_STRING and FIELD_TYPE_VAR_STRING to MYSQL_TYPE_STRING and MYSQL_TYPE_VAR_STRING to make it easy to catch all possible errors Added support for VARCHAR KEYS to heap Removed support for ISAM Now only long VARCHAR columns are changed to TEXT on demand (not CHAR) Internal temporary files can now use fixed length tables if the used VARCHAR columns are short
215 lines
6.5 KiB
Text
215 lines
6.5 KiB
Text
drop table if exists t1;
|
|
select 'a' = 'a', 'a' = 'a ', 'a ' = 'a';
|
|
'a' = 'a' 'a' = 'a ' 'a ' = 'a'
|
|
1 1 1
|
|
select 'a\0' = 'a', 'a\0' < 'a', 'a\0' > 'a';
|
|
'a\0' = 'a' 'a\0' < 'a' 'a\0' > 'a'
|
|
0 1 0
|
|
select 'a' = 'a\0', 'a' < 'a\0', 'a' > 'a\0';
|
|
'a' = 'a\0' 'a' < 'a\0' 'a' > 'a\0'
|
|
0 0 1
|
|
select 'a\0' = 'a ', 'a\0' < 'a ', 'a\0' > 'a ';
|
|
'a\0' = 'a ' 'a\0' < 'a ' 'a\0' > 'a '
|
|
0 1 0
|
|
select 'a ' = 'a\0', 'a ' < 'a\0', 'a ' > 'a\0';
|
|
'a ' = 'a\0' 'a ' < 'a\0' 'a ' > 'a\0'
|
|
0 0 1
|
|
select 'a a' > 'a', 'a \0' < 'a';
|
|
'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
|
|
create table t1 (text1 varchar(32) not NULL, KEY key1 (text1));
|
|
insert into t1 values ('teststring'), ('nothing'), ('teststring\t');
|
|
check table t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check status OK
|
|
select * from t1 ignore key (key1) where text1='teststring' or text1 like 'teststring_%';
|
|
text1
|
|
teststring
|
|
teststring
|
|
select * from t1 where text1='teststring' or text1 like 'teststring_%';
|
|
text1
|
|
teststring
|
|
teststring
|
|
select * from t1 where text1='teststring' or text1 > 'teststring\t';
|
|
text1
|
|
teststring
|
|
select * from t1 order by text1;
|
|
text1
|
|
nothing
|
|
teststring
|
|
teststring
|
|
explain select * from t1 order by text1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 index NULL key1 34 NULL 3 Using index
|
|
alter table t1 modify text1 char(32) binary not null;
|
|
check table t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check status OK
|
|
select * from t1 ignore key (key1) where text1='teststring' or text1 like 'teststring_%';
|
|
text1
|
|
teststring
|
|
teststring
|
|
select concat('|', text1, '|') from t1 where text1='teststring' or text1 like 'teststring_%';
|
|
concat('|', text1, '|')
|
|
|teststring |
|
|
|teststring|
|
|
select concat('|', text1, '|') from t1 where text1='teststring' or text1 > 'teststring\t';
|
|
concat('|', text1, '|')
|
|
|teststring|
|
|
select text1, length(text1) from t1 order by text1;
|
|
text1 length(text1)
|
|
nothing 7
|
|
teststring 11
|
|
teststring 10
|
|
select text1, length(text1) from t1 order by binary text1;
|
|
text1 length(text1)
|
|
nothing 7
|
|
teststring 10
|
|
teststring 11
|
|
alter table t1 modify text1 blob not null, drop key key1, add key key1 (text1(20));
|
|
insert into t1 values ('teststring ');
|
|
select concat('|', text1, '|') from t1 order by text1;
|
|
concat('|', text1, '|')
|
|
|nothing|
|
|
|teststring|
|
|
|teststring |
|
|
|teststring |
|
|
select concat('|', text1, '|') from t1 where text1='teststring' or text1 > 'teststring\t';
|
|
concat('|', text1, '|')
|
|
|teststring|
|
|
|teststring |
|
|
select concat('|', text1, '|') from t1 where text1='teststring';
|
|
concat('|', text1, '|')
|
|
|teststring|
|
|
select concat('|', text1, '|') from t1 where text1='teststring ';
|
|
concat('|', text1, '|')
|
|
|teststring |
|
|
alter table t1 modify text1 text not null, pack_keys=1;
|
|
select concat('|', text1, '|') from t1 where text1='teststring';
|
|
concat('|', text1, '|')
|
|
|teststring|
|
|
|teststring |
|
|
select concat('|', text1, '|') from t1 where text1='teststring ';
|
|
concat('|', text1, '|')
|
|
|teststring|
|
|
|teststring |
|
|
explain select concat('|', text1, '|') from t1 where text1='teststring ';
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range key1 key1 22 NULL 2 Using where
|
|
select concat('|', text1, '|') from t1 where text1 like 'teststring_%';
|
|
concat('|', text1, '|')
|
|
|teststring |
|
|
|teststring |
|
|
select concat('|', text1, '|') from t1 where text1='teststring' or text1 like 'teststring_%';
|
|
concat('|', text1, '|')
|
|
|teststring |
|
|
|teststring|
|
|
|teststring |
|
|
select concat('|', text1, '|') from t1 where text1='teststring' or text1 > 'teststring\t';
|
|
concat('|', text1, '|')
|
|
|teststring|
|
|
|teststring |
|
|
select concat('|', text1, '|') from t1 order by text1;
|
|
concat('|', text1, '|')
|
|
|nothing|
|
|
|teststring |
|
|
|teststring|
|
|
|teststring |
|
|
drop table t1;
|
|
create table t1 (text1 varchar(32) not NULL, KEY key1 (text1)) pack_keys=0;
|
|
insert into t1 values ('teststring'), ('nothing'), ('teststring\t');
|
|
select concat('|', text1, '|') from t1 where text1='teststring' or text1 like 'teststring_%';
|
|
concat('|', text1, '|')
|
|
|teststring |
|
|
|teststring|
|
|
select concat('|', text1, '|') from t1 where text1='teststring' or text1 >= 'teststring\t';
|
|
concat('|', text1, '|')
|
|
|teststring |
|
|
|teststring|
|
|
drop table t1;
|
|
create table t1 (text1 varchar(32) not NULL, KEY key1 using BTREE (text1)) engine=heap;
|
|
insert into t1 values ('teststring'), ('nothing'), ('teststring\t');
|
|
select * from t1 ignore key (key1) where text1='teststring' or text1 like 'teststring_%';
|
|
text1
|
|
teststring
|
|
teststring
|
|
select * from t1 where text1='teststring' or text1 like 'teststring_%';
|
|
text1
|
|
teststring
|
|
teststring
|
|
select * from t1 where text1='teststring' or text1 >= 'teststring\t';
|
|
text1
|
|
teststring
|
|
teststring
|
|
select * from t1 order by text1;
|
|
text1
|
|
nothing
|
|
teststring
|
|
teststring
|
|
explain select * from t1 order by text1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 index NULL key1 34 NULL 3
|
|
alter table t1 modify text1 char(32) binary not null;
|
|
select * from t1 order by text1;
|
|
text1
|
|
nothing
|
|
teststring
|
|
teststring
|
|
drop table t1;
|
|
create table t1 (text1 varchar(32) not NULL, KEY key1 (text1)) engine=innodb;
|
|
insert into t1 values ('teststring'), ('nothing'), ('teststring\t');
|
|
check table t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check status OK
|
|
select * from t1 where text1='teststring' or text1 like 'teststring_%';
|
|
text1
|
|
teststring
|
|
teststring
|
|
select * from t1 where text1='teststring' or text1 > 'teststring\t';
|
|
text1
|
|
teststring
|
|
select * from t1 order by text1;
|
|
text1
|
|
nothing
|
|
teststring
|
|
teststring
|
|
explain select * from t1 order by text1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 index NULL key1 32 NULL 3 Using index
|
|
alter table t1 modify text1 char(32) binary not null;
|
|
select * from t1 order by text1;
|
|
text1
|
|
nothing
|
|
teststring
|
|
teststring
|
|
alter table t1 modify text1 blob not null, drop key key1, add key key1 (text1(20));
|
|
insert into t1 values ('teststring ');
|
|
select concat('|', text1, '|') from t1 order by text1;
|
|
concat('|', text1, '|')
|
|
|nothing|
|
|
|teststring|
|
|
|teststring |
|
|
|teststring |
|
|
alter table t1 modify text1 text not null, pack_keys=1;
|
|
select * from t1 where text1 like 'teststring_%';
|
|
text1
|
|
teststring
|
|
teststring
|
|
select text1, length(text1) from t1 where text1='teststring' or text1 like 'teststring_%';
|
|
text1 length(text1)
|
|
teststring 11
|
|
teststring 11
|
|
select text1, length(text1) from t1 where text1='teststring' or text1 >= 'teststring\t';
|
|
text1 length(text1)
|
|
teststring 11
|
|
teststring 11
|
|
select concat('|', text1, '|') from t1 order by text1;
|
|
concat('|', text1, '|')
|
|
|nothing|
|
|
|teststring |
|
|
|teststring|
|
|
|teststring |
|
|
drop table t1;
|