mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 12:32:27 +01:00
aaa9ed3eff
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 ....
517 lines
12 KiB
Text
517 lines
12 KiB
Text
SET SESSION STORAGE_ENGINE = MyISAM;
|
|
drop table if exists t1,t3,t4,t5;
|
|
create table t1 (a int, b char(10), key a(a), key b(a,b));
|
|
insert into t1 values
|
|
(17,"ddd"),(18,"eee"),(19,"fff"),(19,"yyy"),
|
|
(14,"aaa"),(15,"bbb"),(16,"ccc"),(16,"xxx"),
|
|
(20,"ggg"),(21,"hhh"),(22,"iii");
|
|
handler t1 open as t2;
|
|
handler t2 read a=(SELECT 1);
|
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT 1)' at line 1
|
|
handler t2 read a first;
|
|
a b
|
|
14 aaa
|
|
handler t2 read a next;
|
|
a b
|
|
15 bbb
|
|
handler t2 read a next;
|
|
a b
|
|
16 ccc
|
|
handler t2 read a prev;
|
|
a b
|
|
15 bbb
|
|
handler t2 read a last;
|
|
a b
|
|
22 iii
|
|
handler t2 read a prev;
|
|
a b
|
|
21 hhh
|
|
handler t2 read a prev;
|
|
a b
|
|
20 ggg
|
|
handler t2 read a first;
|
|
a b
|
|
14 aaa
|
|
handler t2 read a prev;
|
|
a b
|
|
handler t2 read a last;
|
|
a b
|
|
22 iii
|
|
handler t2 read a prev;
|
|
a b
|
|
21 hhh
|
|
handler t2 read a next;
|
|
a b
|
|
22 iii
|
|
handler t2 read a next;
|
|
a b
|
|
handler t2 read a=(15);
|
|
a b
|
|
15 bbb
|
|
handler t2 read a=(16);
|
|
a b
|
|
16 ccc
|
|
handler t2 read a=(19,"fff");
|
|
ERROR 42000: Too many key parts specified; max 1 parts allowed
|
|
handler t2 read b=(19,"fff");
|
|
a b
|
|
19 fff
|
|
handler t2 read b=(19,"yyy");
|
|
a b
|
|
19 yyy
|
|
handler t2 read b=(19);
|
|
a b
|
|
19 fff
|
|
handler t1 read a last;
|
|
ERROR 42S02: Unknown table 't1' in HANDLER
|
|
handler t2 read a=(11);
|
|
a b
|
|
handler t2 read a>=(11);
|
|
a b
|
|
14 aaa
|
|
handler t2 read a=(18);
|
|
a b
|
|
18 eee
|
|
handler t2 read a>=(18);
|
|
a b
|
|
18 eee
|
|
handler t2 read a>(18);
|
|
a b
|
|
19 fff
|
|
handler t2 read a<=(18);
|
|
a b
|
|
18 eee
|
|
handler t2 read a<(18);
|
|
a b
|
|
17 ddd
|
|
handler t2 read a first limit 5;
|
|
a b
|
|
14 aaa
|
|
15 bbb
|
|
16 ccc
|
|
16 xxx
|
|
17 ddd
|
|
handler t2 read a next limit 3;
|
|
a b
|
|
18 eee
|
|
19 fff
|
|
19 yyy
|
|
handler t2 read a prev limit 10;
|
|
a b
|
|
19 fff
|
|
18 eee
|
|
17 ddd
|
|
16 xxx
|
|
16 ccc
|
|
15 bbb
|
|
14 aaa
|
|
handler t2 read a>=(16) limit 4;
|
|
a b
|
|
16 ccc
|
|
16 xxx
|
|
17 ddd
|
|
18 eee
|
|
handler t2 read a>=(16) limit 2,2;
|
|
a b
|
|
17 ddd
|
|
18 eee
|
|
handler t2 read a last limit 3;
|
|
a b
|
|
22 iii
|
|
21 hhh
|
|
20 ggg
|
|
handler t2 read a=(19);
|
|
a b
|
|
19 fff
|
|
handler t2 read a=(19) where b="yyy";
|
|
a b
|
|
19 yyy
|
|
handler t2 read first;
|
|
a b
|
|
17 ddd
|
|
handler t2 read next;
|
|
a b
|
|
18 eee
|
|
handler t2 read next;
|
|
a b
|
|
19 fff
|
|
handler t2 read last;
|
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
|
|
handler t2 close;
|
|
handler t1 open;
|
|
handler t1 read a next;
|
|
a b
|
|
14 aaa
|
|
handler t1 read a next;
|
|
a b
|
|
15 bbb
|
|
handler t1 close;
|
|
handler t1 open;
|
|
handler t1 read a prev;
|
|
a b
|
|
22 iii
|
|
handler t1 read a prev;
|
|
a b
|
|
21 hhh
|
|
handler t1 close;
|
|
handler t1 open as t2;
|
|
handler t2 read first;
|
|
a b
|
|
17 ddd
|
|
alter table t1 engine = MyISAM;
|
|
handler t2 read first;
|
|
ERROR 42S02: Unknown table 't2' in HANDLER
|
|
handler t1 open as t2;
|
|
drop table t1;
|
|
create table t1 (a int);
|
|
insert into t1 values (17);
|
|
handler t2 read first;
|
|
ERROR 42S02: Unknown table 't2' in HANDLER
|
|
handler t1 open as t2;
|
|
alter table t1 engine=MyISAM;
|
|
handler t2 read first;
|
|
ERROR 42S02: Unknown table 't2' in HANDLER
|
|
drop table t1;
|
|
create table t1 (a int);
|
|
insert into t1 values (1),(2),(3),(4),(5),(6);
|
|
delete from t1 limit 2;
|
|
handler t1 open;
|
|
handler t1 read first;
|
|
a
|
|
3
|
|
handler t1 read first limit 1,1;
|
|
a
|
|
4
|
|
handler t1 read first limit 2,2;
|
|
a
|
|
5
|
|
6
|
|
delete from t1 limit 3;
|
|
handler t1 read first;
|
|
a
|
|
6
|
|
drop table t1;
|
|
create table t1(a int, index(a));
|
|
insert into t1 values (1), (2), (3);
|
|
handler t1 open;
|
|
handler t1 read a=(W);
|
|
ERROR 42S22: Unknown column 'W' in 'field list'
|
|
handler t1 read a=(a);
|
|
ERROR HY000: Incorrect arguments to HANDLER ... READ
|
|
drop table t1;
|
|
create table t1 (a char(5));
|
|
insert into t1 values ("Ok");
|
|
handler t1 open as t;
|
|
handler t read first;
|
|
a
|
|
Ok
|
|
use mysql;
|
|
handler t read first;
|
|
a
|
|
Ok
|
|
handler t close;
|
|
handler test.t1 open as t;
|
|
handler t read first;
|
|
a
|
|
Ok
|
|
handler t close;
|
|
use test;
|
|
drop table t1;
|
|
create table t1 ( a int, b int, INDEX a (a) );
|
|
insert into t1 values (1,2), (2,1);
|
|
handler t1 open;
|
|
handler t1 read a=(1) where b=2;
|
|
a b
|
|
1 2
|
|
handler t1 read a=(1) where b=3;
|
|
a b
|
|
handler t1 read a=(1) where b=1;
|
|
a b
|
|
handler t1 close;
|
|
drop table t1;
|
|
drop database if exists test_test;
|
|
create database test_test;
|
|
use test_test;
|
|
create table t1(table_id char(20) primary key);
|
|
insert into t1 values ('test_test.t1');
|
|
insert into t1 values ('');
|
|
handler t1 open;
|
|
handler t1 read first limit 9;
|
|
table_id
|
|
test_test.t1
|
|
|
|
create table t2(table_id char(20) primary key);
|
|
insert into t2 values ('test_test.t2');
|
|
insert into t2 values ('');
|
|
handler t2 open;
|
|
handler t2 read first limit 9;
|
|
table_id
|
|
test_test.t2
|
|
|
|
use test;
|
|
drop table if exists t1;
|
|
create table t1(table_id char(20) primary key);
|
|
insert into t1 values ('test.t1');
|
|
insert into t1 values ('');
|
|
handler t1 open;
|
|
ERROR 42000: Not unique table/alias: 't1'
|
|
use test;
|
|
handler test.t1 read first limit 9;
|
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'read first limit 9' at line 1
|
|
handler test_test.t1 read first limit 9;
|
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'read first limit 9' at line 1
|
|
handler t1 read first limit 9;
|
|
table_id
|
|
test_test.t1
|
|
|
|
handler test_test.t2 read first limit 9;
|
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'read first limit 9' at line 1
|
|
handler t2 read first limit 9;
|
|
table_id
|
|
test_test.t2
|
|
|
|
handler test_test.t1 close;
|
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'close' at line 1
|
|
handler t1 close;
|
|
drop table test_test.t1;
|
|
handler test_test.t2 close;
|
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'close' at line 1
|
|
handler t2 close;
|
|
drop table test_test.t2;
|
|
drop database test_test;
|
|
use test;
|
|
handler test.t1 close;
|
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'close' at line 1
|
|
handler t1 close;
|
|
ERROR 42S02: Unknown table 't1' in HANDLER
|
|
drop table test.t1;
|
|
drop database if exists test_test;
|
|
drop table if exists t1;
|
|
drop table if exists t2;
|
|
drop table if exists t3;
|
|
create database test_test;
|
|
use test_test;
|
|
create table t1 (c1 char(20));
|
|
insert into t1 values ('test_test.t1');
|
|
create table t3 (c1 char(20));
|
|
insert into t3 values ('test_test.t3');
|
|
handler t1 open;
|
|
handler t1 read first limit 9;
|
|
c1
|
|
test_test.t1
|
|
handler t1 open h1;
|
|
handler h1 read first limit 9;
|
|
c1
|
|
test_test.t1
|
|
use test;
|
|
create table t1 (c1 char(20));
|
|
create table t2 (c1 char(20));
|
|
create table t3 (c1 char(20));
|
|
insert into t1 values ('t1');
|
|
insert into t2 values ('t2');
|
|
insert into t3 values ('t3');
|
|
handler t1 open;
|
|
ERROR 42000: Not unique table/alias: 't1'
|
|
handler t2 open t1;
|
|
ERROR 42000: Not unique table/alias: 't1'
|
|
handler t3 open t1;
|
|
ERROR 42000: Not unique table/alias: 't1'
|
|
handler t1 read first limit 9;
|
|
c1
|
|
test_test.t1
|
|
handler test.t1 close;
|
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'close' at line 1
|
|
handler test.t1 open h1;
|
|
ERROR 42000: Not unique table/alias: 'h1'
|
|
handler test_test.t1 open h1;
|
|
ERROR 42000: Not unique table/alias: 'h1'
|
|
handler test_test.t3 open h3;
|
|
handler test.t1 open h2;
|
|
handler t1 read first limit 9;
|
|
c1
|
|
test_test.t1
|
|
handler h1 read first limit 9;
|
|
c1
|
|
test_test.t1
|
|
handler h2 read first limit 9;
|
|
c1
|
|
t1
|
|
handler h3 read first limit 9;
|
|
c1
|
|
test_test.t3
|
|
handler h2 read first limit 9;
|
|
c1
|
|
t1
|
|
handler test.h1 close;
|
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'close' at line 1
|
|
handler t1 close;
|
|
handler h1 close;
|
|
handler h2 close;
|
|
handler t1 read first limit 9;
|
|
ERROR 42S02: Unknown table 't1' in HANDLER
|
|
handler h1 read first limit 9;
|
|
ERROR 42S02: Unknown table 'h1' in HANDLER
|
|
handler h2 read first limit 9;
|
|
ERROR 42S02: Unknown table 'h2' in HANDLER
|
|
handler h3 read first limit 9;
|
|
c1
|
|
test_test.t3
|
|
handler h3 read first limit 9;
|
|
c1
|
|
test_test.t3
|
|
use test_test;
|
|
handler h3 read first limit 9;
|
|
c1
|
|
test_test.t3
|
|
handler test.h3 read first limit 9;
|
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'read first limit 9' at line 1
|
|
handler h3 close;
|
|
use test;
|
|
drop table t3;
|
|
drop table t2;
|
|
drop table t1;
|
|
drop database test_test;
|
|
create table t1 (c1 char(20));
|
|
insert into t1 values ("t1");
|
|
handler t1 open as h1;
|
|
handler h1 read first limit 9;
|
|
c1
|
|
t1
|
|
create table t2 (c1 char(20));
|
|
insert into t2 values ("t2");
|
|
handler t2 open as h2;
|
|
handler h2 read first limit 9;
|
|
c1
|
|
t2
|
|
create table t3 (c1 char(20));
|
|
insert into t3 values ("t3");
|
|
handler t3 open as h3;
|
|
handler h3 read first limit 9;
|
|
c1
|
|
t3
|
|
create table t4 (c1 char(20));
|
|
insert into t4 values ("t4");
|
|
handler t4 open as h4;
|
|
handler h4 read first limit 9;
|
|
c1
|
|
t4
|
|
create table t5 (c1 char(20));
|
|
insert into t5 values ("t5");
|
|
handler t5 open as h5;
|
|
handler h5 read first limit 9;
|
|
c1
|
|
t5
|
|
alter table t1 engine=MyISAM;
|
|
handler h1 read first limit 9;
|
|
ERROR 42S02: Unknown table 'h1' in HANDLER
|
|
handler h2 read first limit 9;
|
|
c1
|
|
t2
|
|
handler h3 read first limit 9;
|
|
c1
|
|
t3
|
|
handler h4 read first limit 9;
|
|
c1
|
|
t4
|
|
handler h5 read first limit 9;
|
|
c1
|
|
t5
|
|
alter table t5 engine=MyISAM;
|
|
handler h1 read first limit 9;
|
|
ERROR 42S02: Unknown table 'h1' in HANDLER
|
|
handler h2 read first limit 9;
|
|
c1
|
|
t2
|
|
handler h3 read first limit 9;
|
|
c1
|
|
t3
|
|
handler h4 read first limit 9;
|
|
c1
|
|
t4
|
|
handler h5 read first limit 9;
|
|
ERROR 42S02: Unknown table 'h5' in HANDLER
|
|
alter table t3 engine=MyISAM;
|
|
handler h1 read first limit 9;
|
|
ERROR 42S02: Unknown table 'h1' in HANDLER
|
|
handler h2 read first limit 9;
|
|
c1
|
|
t2
|
|
handler h3 read first limit 9;
|
|
ERROR 42S02: Unknown table 'h3' in HANDLER
|
|
handler h4 read first limit 9;
|
|
c1
|
|
t4
|
|
handler h5 read first limit 9;
|
|
ERROR 42S02: Unknown table 'h5' in HANDLER
|
|
handler h2 close;
|
|
handler h4 close;
|
|
handler t1 open as h1_1;
|
|
handler t1 open as h1_2;
|
|
handler t1 open as h1_3;
|
|
handler h1_1 read first limit 9;
|
|
c1
|
|
t1
|
|
handler h1_2 read first limit 9;
|
|
c1
|
|
t1
|
|
handler h1_3 read first limit 9;
|
|
c1
|
|
t1
|
|
alter table t1 engine=MyISAM;
|
|
handler h1_1 read first limit 9;
|
|
ERROR 42S02: Unknown table 'h1_1' in HANDLER
|
|
handler h1_2 read first limit 9;
|
|
ERROR 42S02: Unknown table 'h1_2' in HANDLER
|
|
handler h1_3 read first limit 9;
|
|
ERROR 42S02: Unknown table 'h1_3' in HANDLER
|
|
drop table t1;
|
|
drop table t2;
|
|
drop table t3;
|
|
drop table t4;
|
|
drop table t5;
|
|
create table t1 (c1 int);
|
|
insert into t1 values (1);
|
|
handler t1 open;
|
|
handler t1 read first;
|
|
c1
|
|
1
|
|
send the below to another connection, do not wait for the result
|
|
optimize table t1;
|
|
proceed with the normal connection
|
|
handler t1 read next;
|
|
c1
|
|
1
|
|
handler t1 close;
|
|
read the result from the other connection
|
|
Table Op Msg_type Msg_text
|
|
test.t1 optimize status OK
|
|
proceed with the normal connection
|
|
drop table t1;
|
|
CREATE TABLE t1 ( no1 smallint(5) NOT NULL default '0', no2 int(10) NOT NULL default '0', PRIMARY KEY (no1,no2));
|
|
INSERT INTO t1 VALUES (1,274),(1,275),(2,6),(2,8),(4,1),(4,2);
|
|
HANDLER t1 OPEN;
|
|
HANDLER t1 READ `primary` = (1, 1000);
|
|
no1 no2
|
|
HANDLER t1 READ `primary` PREV;
|
|
no1 no2
|
|
1 275
|
|
DROP TABLE t1;
|
|
create table t1 (c1 int);
|
|
insert into t1 values (14397);
|
|
flush tables with read lock;
|
|
drop table t1;
|
|
ERROR HY000: Can't execute the query because you have a conflicting read lock
|
|
send the below to another connection, do not wait for the result
|
|
drop table t1;
|
|
proceed with the normal connection
|
|
select * from t1;
|
|
c1
|
|
14397
|
|
unlock tables;
|
|
read the result from the other connection
|
|
proceed with the normal connection
|
|
select * from t1;
|
|
ERROR 42S02: Table 'test.t1' doesn't exist
|
|
drop table if exists t1;
|
|
Warnings:
|
|
Note 1051 Unknown table 't1'
|