Test case for MyISAM and OPTIMIZE TABLE
that requires MDL_SHARED_NO_READ_WRITE.
This commit is contained in:
parent
214c43ba96
commit
68325b6a12
23
mysql-test/r/myisam_optimize.result
Normal file
23
mysql-test/r/myisam_optimize.result
Normal file
@ -0,0 +1,23 @@
|
||||
call mtr.add_suppression(" marked as crashed and should be repaired");
|
||||
create table t1 (a int auto_increment primary key, b text);
|
||||
insert t1 (b) select repeat("A", 100);
|
||||
insert t1 (b) select repeat("B", 200) from t1;
|
||||
insert t1 (b) select repeat("C", 300) from t1;
|
||||
delete from t1 where a < 3;
|
||||
explain select a, left(b,10) from t1 order by a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using filesort
|
||||
select left(b,10), a from t1 order by a;
|
||||
left(b,10) a
|
||||
CCCCCCCCCC 3
|
||||
CCCCCCCCCC 4
|
||||
set debug_sync='myisam_after_repair_by_sort wait_for go';
|
||||
optimize table t1;
|
||||
select a, left(b,10) from t1 order by a;
|
||||
set debug_sync='now signal go';
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 optimize status OK
|
||||
a left(b,10)
|
||||
3 CCCCCCCCCC
|
||||
4 CCCCCCCCCC
|
||||
drop table t1;
|
47
mysql-test/t/myisam_optimize.test
Normal file
47
mysql-test/t/myisam_optimize.test
Normal file
@ -0,0 +1,47 @@
|
||||
#
|
||||
# test OPTIMIZE and a concurrent SELECT of a MyISAM table
|
||||
#
|
||||
source include/have_debug_sync.inc;
|
||||
|
||||
call mtr.add_suppression(" marked as crashed and should be repaired");
|
||||
|
||||
create table t1 (a int auto_increment primary key, b text);
|
||||
insert t1 (b) select repeat("A", 100);
|
||||
insert t1 (b) select repeat("B", 200) from t1;
|
||||
insert t1 (b) select repeat("C", 300) from t1;
|
||||
|
||||
delete from t1 where a < 3;
|
||||
explain select a, left(b,10) from t1 order by a;
|
||||
select left(b,10), a from t1 order by a;
|
||||
|
||||
set debug_sync='myisam_after_repair_by_sort wait_for go';
|
||||
send optimize table t1;
|
||||
|
||||
connect (con1,localhost,root,,);
|
||||
let $wait_condition=
|
||||
select count(*) = 1 from information_schema.processlist
|
||||
where state like "%myisam_after_repair_by_sort%";
|
||||
--source include/wait_condition.inc
|
||||
|
||||
send select a, left(b,10) from t1 order by a;
|
||||
|
||||
connect (con2,localhost,root,,);
|
||||
let $wait_condition=
|
||||
select count(*) = 1 from information_schema.processlist
|
||||
where state = "Waiting for table metadata lock";
|
||||
--source include/wait_condition.inc
|
||||
|
||||
set debug_sync='now signal go';
|
||||
|
||||
connection default;
|
||||
reap;
|
||||
|
||||
connection con1;
|
||||
reap;
|
||||
|
||||
disconnect con1;
|
||||
disconnect con2;
|
||||
connection default;
|
||||
|
||||
drop table t1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user