mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 12:32:27 +01:00
808237b083
WL#3397 Refactoring storage engine test cases (for falcon) It contains also fixes according to code review. Contents: Testcases which were in history dedicated to InnoDB or MyISAM only. Modifications: 1. Shift the main testing code into include/<testing field>.inc Introduce $variables which can be used to omit tests for features which are not supported by certain storage engines. 2. The storage engine to be tested is assigned within the toplevel script (t/<whatever>_<engine>.test) via variable $engine_type and the the main testing code is sourced from include/<testing field>.inc 3. Some toplevel testscripts have to be renamed to - avoid immediate or future namespace clashes - show via filename which storage engine is tested 4. Minor code cleanup like remove trailing spaces, some additional comments .... mysql-test/t/unsafe_binlog_innodb-master.opt: Rename: mysql-test/t/innodb_unsafe_binlog-master.opt -> mysql-test/t/unsafe_binlog_innodb-master.opt mysql-test/r/read_many_rows_innodb.result: Rename: mysql-test/r/innodb-big.result -> mysql-test/r/read_many_rows_innodb.result mysql-test/t/cache_innodb-master.opt: Rename: mysql-test/t/innodb_cache-master.opt -> mysql-test/t/cache_innodb-master.opt mysql-test/t/concurrent_innodb-master.opt: Rename: mysql-test/t/innodb_concurrent-master.opt -> mysql-test/t/concurrent_innodb-master.opt BitKeeper/deleted/.del-index_merge.result: Delete: mysql-test/r/index_merge.result BitKeeper/deleted/.del-index_merge_innodb.result: Delete: mysql-test/r/index_merge_innodb.result BitKeeper/deleted/.del-index_merge_innodb2.result: Delete: mysql-test/r/index_merge_innodb2.result BitKeeper/deleted/.del-index_merge_ror.result: Delete: mysql-test/r/index_merge_ror.result BitKeeper/deleted/.del-index_merge_ror_cpk.result: Delete: mysql-test/r/index_merge_ror_cpk.result mysql-test/r/index_merge_innodb.result: BitKeeper file /home/matthias/Arbeit/mysql-5.1-engines/src-1/mysql-test/r/index_merge_innodb.result mysql-test/t/index_merge_innodb.test: BitKeeper file /home/matthias/Arbeit/mysql-5.1-engines/src-1/mysql-test/t/index_merge_innodb.test mysql-test/t/index_merge_myisam.test: BitKeeper file /home/matthias/Arbeit/mysql-5.1-engines/src-1/mysql-test/t/index_merge_myisam.test mysql-test/include/concurrent.inc: 1. This file contains now the main testing code of the former t/innodb_concurrent.test. 2. It is now sourced by t/concurrent_innodb.test. mysql-test/include/deadlock.inc: 1. This file contains now the main testing code of the former t/innodb-deadlock.test 2. It is now sourced by t/deadlock_innodb.test. mysql-test/include/handler.inc: 1. This file contains now the main testing code of the former t/innodb_handler.test + t/handler.test. 2. It is now sourced by t/handler_myisam.test and t/handler_innodb.test. mysql-test/include/index_merge1.inc: 1. This file contains now the main testing code of the former t/index_merge.test. 2. It is now sourced by t/index_merge_myisam.test. mysql-test/include/index_merge2.inc: 1. This file contains now the main code of t/index_merge_innodb.test. 2. It is sourced by t/index_merge_myisam.test and t/index_merge_innodb.test. mysql-test/include/index_merge_2sweeps.inc: 1. This file contains now the main code of the former t/index_merge_innodb2.test. 2. It is sourced by t/index_merge_myisam.test and t/index_merge_innodb.test. mysql-test/include/index_merge_ror.inc: 1. This file contains now the main code of the former t/index_merge_ror.test. 2. It is sourced by t/index_merge_myisam.test. mysql-test/include/index_merge_ror_cpk.inc: 1. This file contains now the main testing code of the former t/index_merge_ror_cpk.test. 2. It is now sourced by t/index_merge_myisam.test and t/index_merge_innodb.test. mysql-test/include/mix1.inc: 1. This file contains now the main testing code of the t/innodb_mysql.test 2. The name mix1.inc was used because the test contains subtests for different fields. 3. It is sourced by t/innodb_mysql.test. 4. Fixes: - Assign $other_engine_type instead of hardcoded MyISAM. - improve comment - remove redundant subtest - analyze table t4 instead of wrong table t1 - remove not needed "eval set storage_engine = $engine_type;" mysql-test/include/mix2.inc: 1. This file is a copy of the main testing code of the t/innodb.test A copy has to be used, because t/innodb.test is to be maintained by INNOBASE only. 2. The name mix2.inc was used because the test contains subtests for different fields. 3. It is sourced by t/mix2_myisam.test. 4. Fixes: - improved comment - additional "eval SET SESSION STORAGE_ENGINE = $other_engine_type;" at beginning of tests - assign $other_engine_type instead of hardcoded MyISAM or HEAP - assign $other_engine_type where it is needed to preserve test logics - correct logical bugs - improve(extend) "checksum table" test mysql-test/include/query_cache.inc: 1. This file contains now the main testing code of the former t/innodb_cache.test. 2. It is now sourced by t/cache_innodb.test mysql-test/include/read_many_rows.inc: 1. This file contains now the main testing code of the former t/innodb_big.test. 2. It is now sourced by t/read_many_rows_innodb.test. mysql-test/include/rowid_order.inc: 1. This file contains now the main testing code of t/rowid_order_innodb.test. 2. It is now sourced by t/rowid_order_innodb.test. mysql-test/include/unsafe_binlog.inc: 1. This file contains now the main testing code of the former t/innodb_unsafe_binlog.test. 2. It is now sourced by t/unsafe_binlog_innodb.test. mysql-test/r/cache_innodb.result: Updated result mysql-test/r/concurrent_innodb.result: Updated result mysql-test/r/deadlock_innodb.result: Updated result mysql-test/r/handler_innodb.result: Updated result mysql-test/r/handler_myisam.result: Updated result mysql-test/r/index_merge_myisam.result: Updated result mysql-test/r/innodb_mysql.result: Updated result mysql-test/r/mix2_myisam.result: Updated result mysql-test/r/rowid_order_innodb.result: Updated result mysql-test/r/unsafe_binlog_innodb.result: Updated result mysql-test/t/cache_innodb.test: 1. Renaming of t/innodb_cache.test to t/cache_innodb.test 2. Main code is now sourced from include/query_cache.inc. mysql-test/t/concurrent_innodb.test: 1. Renaming of t/innodb_concurrent.test to t/concurrent_innodb.test 2. Main code is now sourced from include/concurrent.inc. Attention: This test fails even in the old version. (BUG#21579). --> added to t/disabled.def mysql-test/t/deadlock_innodb.test: 1. Renaming of t/innodb_deadlock.test to t/deadlock_innodb.test 2. Main code is now sourced from include/deadlock.inc. mysql-test/t/disabled.def: Add the test concurrent_innodb because of BUG#21579 2006-08-11 mleich innodb_concurrent random failures with varying differences mysql-test/t/handler_innodb.test: 1. Renaming of t/innodb_handler.test to t/handler_innodb.test 2. Main code is now sourced from include/handler.inc. include/handler.inc = united code of former t/handler.test and t/innodb_handler.test mysql-test/t/handler_myisam.test: 1. Renaming of t/handler.test to t/handler_myisam.test 2. Main code is now sourced from include/handler.inc. include/handler.inc = united code of former t/handler.test and t/handler_innodb.test. mysql-test/t/innodb_mysql.test: 1. Main code is now sourced from include/mix1.inc. 2. Test was not renamed because t/innodb.test refers to it. mysql-test/t/mix2_myisam.test: New test: MyISAM variant of mix2 ( = t/innodb.test) mysql-test/t/read_many_rows_innodb.test: 1. Renaming of t/innodb_big.test to t/read_many_rows_innodb.test 2. Main code is now sourced from include/read_many_rows.inc. mysql-test/t/rowid_order_innodb.test: Main code is now sourced from t/rowid_order.inc. mysql-test/t/unsafe_binlog_innodb.test: 1. Renaming of t/innodb_unsafe_binlog.test to t/unsafe_binlog_innodb.test 2. Main code is now sourced from include/unsafe_binlog.inc.
187 lines
3.3 KiB
Text
187 lines
3.3 KiB
Text
SET SESSION STORAGE_ENGINE = InnoDB;
|
|
drop table if exists t1, t2, t3,t4;
|
|
create table t1 (
|
|
pk1 int not NULL,
|
|
key1 int(11),
|
|
key2 int(11),
|
|
PRIMARY KEY (pk1),
|
|
KEY key1 (key1),
|
|
KEY key2 (key2)
|
|
);
|
|
insert into t1 values (-5, 1, 1),
|
|
(-100, 1, 1),
|
|
(3, 1, 1),
|
|
(0, 1, 1),
|
|
(10, 1, 1);
|
|
explain select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 index_merge key1,key2 key1,key2 5,5 NULL 4 Using sort_union(key1,key2); Using where
|
|
select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
|
|
pk1 key1 key2
|
|
-100 1 1
|
|
-5 1 1
|
|
0 1 1
|
|
3 1 1
|
|
10 1 1
|
|
drop table t1;
|
|
create table t1 (
|
|
pk1 int unsigned not NULL,
|
|
key1 int(11),
|
|
key2 int(11),
|
|
PRIMARY KEY (pk1),
|
|
KEY key1 (key1),
|
|
KEY key2 (key2)
|
|
);
|
|
insert into t1 values (0, 1, 1),
|
|
(0xFFFFFFFF, 1, 1),
|
|
(0xFFFFFFFE, 1, 1),
|
|
(1, 1, 1),
|
|
(2, 1, 1);
|
|
select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
|
|
pk1 key1 key2
|
|
0 1 1
|
|
1 1 1
|
|
2 1 1
|
|
4294967294 1 1
|
|
4294967295 1 1
|
|
drop table t1;
|
|
create table t1 (
|
|
pk1 char(4) not NULL,
|
|
key1 int(11),
|
|
key2 int(11),
|
|
PRIMARY KEY (pk1),
|
|
KEY key1 (key1),
|
|
KEY key2 (key2)
|
|
) collate latin2_general_ci;
|
|
insert into t1 values ('a1', 1, 1),
|
|
('b2', 1, 1),
|
|
('A3', 1, 1),
|
|
('B4', 1, 1);
|
|
select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
|
|
pk1 key1 key2
|
|
a1 1 1
|
|
A3 1 1
|
|
b2 1 1
|
|
B4 1 1
|
|
drop table t1;
|
|
create table t1 (
|
|
pk1 int not NULL,
|
|
pk2 char(4) not NULL collate latin1_german1_ci,
|
|
pk3 char(4) not NULL collate latin1_bin,
|
|
key1 int(11),
|
|
key2 int(11),
|
|
PRIMARY KEY (pk1,pk2,pk3),
|
|
KEY key1 (key1),
|
|
KEY key2 (key2)
|
|
);
|
|
insert into t1 values
|
|
(1, 'u', 'u', 1, 1),
|
|
(1, 'u', char(0xEC), 1, 1),
|
|
(1, 'u', 'x', 1, 1);
|
|
insert ignore into t1 select pk1, char(0xEC), pk3, key1, key2 from t1;
|
|
insert ignore into t1 select pk1, 'x', pk3, key1, key2 from t1 where pk2='u';
|
|
insert ignore into t1 select 2, pk2, pk3, key1, key2 from t1;
|
|
select * from t1;
|
|
pk1 pk2 pk3 key1 key2
|
|
1 ì u 1 1
|
|
1 ì x 1 1
|
|
1 ì ì 1 1
|
|
1 u u 1 1
|
|
1 u x 1 1
|
|
1 u ì 1 1
|
|
1 x u 1 1
|
|
1 x x 1 1
|
|
1 x ì 1 1
|
|
2 ì u 1 1
|
|
2 ì x 1 1
|
|
2 ì ì 1 1
|
|
2 u u 1 1
|
|
2 u x 1 1
|
|
2 u ì 1 1
|
|
2 x u 1 1
|
|
2 x x 1 1
|
|
2 x ì 1 1
|
|
select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
|
|
pk1 pk2 pk3 key1 key2
|
|
1 ì u 1 1
|
|
1 ì x 1 1
|
|
1 ì ì 1 1
|
|
1 u u 1 1
|
|
1 u x 1 1
|
|
1 u ì 1 1
|
|
1 x u 1 1
|
|
1 x x 1 1
|
|
1 x ì 1 1
|
|
2 ì u 1 1
|
|
2 ì x 1 1
|
|
2 ì ì 1 1
|
|
2 u u 1 1
|
|
2 u x 1 1
|
|
2 u ì 1 1
|
|
2 x u 1 1
|
|
2 x x 1 1
|
|
2 x ì 1 1
|
|
alter table t1 drop primary key;
|
|
select * from t1;
|
|
pk1 pk2 pk3 key1 key2
|
|
1 ì u 1 1
|
|
1 ì x 1 1
|
|
1 ì ì 1 1
|
|
1 u u 1 1
|
|
1 u x 1 1
|
|
1 u ì 1 1
|
|
1 x u 1 1
|
|
1 x x 1 1
|
|
1 x ì 1 1
|
|
2 ì u 1 1
|
|
2 ì x 1 1
|
|
2 ì ì 1 1
|
|
2 u u 1 1
|
|
2 u x 1 1
|
|
2 u ì 1 1
|
|
2 x u 1 1
|
|
2 x x 1 1
|
|
2 x ì 1 1
|
|
select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
|
|
pk1 pk2 pk3 key1 key2
|
|
1 ì u 1 1
|
|
1 ì x 1 1
|
|
1 ì ì 1 1
|
|
1 u u 1 1
|
|
1 u x 1 1
|
|
1 u ì 1 1
|
|
1 x u 1 1
|
|
1 x x 1 1
|
|
1 x ì 1 1
|
|
2 ì u 1 1
|
|
2 ì x 1 1
|
|
2 ì ì 1 1
|
|
2 u u 1 1
|
|
2 u x 1 1
|
|
2 u ì 1 1
|
|
2 x u 1 1
|
|
2 x x 1 1
|
|
2 x ì 1 1
|
|
drop table t1;
|
|
create table t1 (
|
|
pk1 varchar(8) NOT NULL default '',
|
|
pk2 varchar(4) NOT NULL default '',
|
|
key1 int(11),
|
|
key2 int(11),
|
|
primary key(pk1, pk2),
|
|
KEY key1 (key1),
|
|
KEY key2 (key2)
|
|
);
|
|
insert into t1 values ('','empt',2,2),
|
|
('a','a--a',2,2),
|
|
('bb','b--b',2,2),
|
|
('ccc','c--c',2,2),
|
|
('dddd','d--d',2,2);
|
|
select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
|
|
pk1 pk2 key1 key2
|
|
empt 2 2
|
|
a a--a 2 2
|
|
bb b--b 2 2
|
|
ccc c--c 2 2
|
|
dddd d--d 2 2
|
|
drop table t1;
|