mirror of
https://github.com/MariaDB/server.git
synced 2025-05-05 16:59:35 +03:00
Check UCS2 trailing spaces. mysql-test/r/ctype_ucs.result: Move common trailing space checks into an include file. Check UCS2 trailing spaces. Fix UCS2 to handle trailing spaces in PAD way. mysql-test/t/ctype_ucs.test: Move common trailing space checks into an include file. Check UCS2 trailing spaces. Fix UCS2 to handle trailing spaces in PAD way. mysql-test/t/endspace.test: Move common trailing space checks into an include file. Check UCS2 trailing spaces. Fix UCS2 to handle trailing spaces in PAD way. strings/ctype-ucs2.c: Move common trailing space checks into an include file. Check UCS2 trailing spaces. Fix UCS2 to handle trailing spaces in PAD way.
97 lines
4.0 KiB
Plaintext
97 lines
4.0 KiB
Plaintext
#
|
|
# Test problem with characters < ' ' at end of strings (Bug #3152)
|
|
#
|
|
|
|
-- source include/have_innodb.inc
|
|
--disable_warnings
|
|
drop table if exists t1;
|
|
--enable_warnings
|
|
|
|
-- source include/endspace.inc
|
|
|
|
#
|
|
# Test MyISAM tables.
|
|
#
|
|
|
|
create table t1 (text1 varchar(32) not NULL, KEY key1 (text1));
|
|
insert into t1 values ('teststring'), ('nothing'), ('teststring\t');
|
|
check table t1;
|
|
select * from t1 ignore key (key1) where text1='teststring' or text1 like 'teststring_%';
|
|
select * from t1 where text1='teststring' or text1 like 'teststring_%';
|
|
select * from t1 where text1='teststring' or text1 > 'teststring\t';
|
|
select * from t1 order by text1;
|
|
explain select * from t1 order by text1;
|
|
|
|
alter table t1 modify text1 char(32) binary not null;
|
|
check table t1;
|
|
select * from t1 ignore key (key1) where text1='teststring' or text1 like 'teststring_%';
|
|
select concat('|', text1, '|') from t1 where text1='teststring' or text1 like 'teststring_%';
|
|
select concat('|', text1, '|') from t1 where text1='teststring' or text1 > 'teststring\t';
|
|
select text1, length(text1) from t1 order by text1;
|
|
select text1, length(text1) from t1 order by binary text1;
|
|
|
|
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;
|
|
select concat('|', text1, '|') from t1 where text1='teststring' or text1 > 'teststring\t';
|
|
select concat('|', text1, '|') from t1 where text1='teststring';
|
|
select concat('|', text1, '|') from t1 where text1='teststring ';
|
|
|
|
alter table t1 modify text1 text not null, pack_keys=1;
|
|
select concat('|', text1, '|') from t1 where text1='teststring';
|
|
select concat('|', text1, '|') from t1 where text1='teststring ';
|
|
explain select concat('|', text1, '|') from t1 where text1='teststring ';
|
|
select * from t1 where text1 like 'teststring_%';
|
|
select * from t1 where text1='teststring' or text1 like 'teststring_%';
|
|
select concat('|', text1, '|') from t1 where text1='teststring' or text1 > 'teststring\t';
|
|
select concat('|', text1, '|') from t1 order by text1;
|
|
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 * from t1 where text1='teststring' or text1 like 'teststring_%';
|
|
select * from t1 where text1='teststring' or text1 >= 'teststring\t';
|
|
drop table t1;
|
|
|
|
# Test HEAP tables (with BTREE keys)
|
|
|
|
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_%';
|
|
select * from t1 where text1='teststring' or text1 like 'teststring_%';
|
|
select * from t1 where text1='teststring' or text1 >= 'teststring\t';
|
|
select * from t1 order by text1;
|
|
explain select * from t1 order by text1;
|
|
|
|
alter table t1 modify text1 char(32) binary not null;
|
|
select * from t1 order by text1;
|
|
drop table t1;
|
|
|
|
#
|
|
# Test InnoDB tables
|
|
#
|
|
|
|
create table t1 (text1 varchar(32) not NULL, KEY key1 (text1)) engine=innodb;
|
|
insert into t1 values ('teststring'), ('nothing'), ('teststring\t');
|
|
check table t1;
|
|
select * from t1 where text1='teststring' or text1 like 'teststring_%';
|
|
select * from t1 where text1='teststring' or text1 > 'teststring\t';
|
|
select * from t1 order by text1;
|
|
explain select * from t1 order by text1;
|
|
|
|
alter table t1 modify text1 char(32) binary not null;
|
|
select * from t1 order by text1;
|
|
|
|
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;
|
|
|
|
alter table t1 modify text1 text not null, pack_keys=1;
|
|
select * from t1 where text1 like 'teststring_%';
|
|
|
|
# The following gives wrong result in InnoDB
|
|
select text1, length(text1) from t1 where text1='teststring' or text1 like 'teststring_%';
|
|
select text1, length(text1) from t1 where text1='teststring' or text1 >= 'teststring\t';
|
|
select concat('|', text1, '|') from t1 order by text1;
|
|
drop table t1;
|