diff options
Diffstat (limited to 'mysql-test/main/myisam_optimize.test')
-rw-r--r-- | mysql-test/main/myisam_optimize.test | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/mysql-test/main/myisam_optimize.test b/mysql-test/main/myisam_optimize.test new file mode 100644 index 00000000..44215fd2 --- /dev/null +++ b/mysql-test/main/myisam_optimize.test @@ -0,0 +1,127 @@ +# +# test OPTIMIZE and a concurrent SELECT of a MyISAM table +# +source include/have_debug_sync.inc; +--disable_service_connection + +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_before_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_before_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; +set debug_sync='reset'; + +--echo # End of 5.5 tests + +# +# MDEV-11539 test_if_reopen: Assertion `strcmp(share->unique_file_name,filename) || share->last_version' failed upon select from I_S +# +CREATE TABLE t1 (i INT) ENGINE=MyISAM; +INSERT t1 VALUES (1); +LOCK TABLE t1 WRITE; +OPTIMIZE TABLE t1; +--disable_result_log +SELECT * FROM INFORMATION_SCHEMA.TABLES; +--enable_result_log +SELECT * FROM t1; +UNLOCK TABLES; +DROP TABLE t1; + +--echo # End of 10.0 tests +--echo # +--echo # MDEV-8475 stale .TMM file causes Aria engine to stop serving the table +--echo # +create table t1 (pk int primary key, i int) engine=MyISAM; +insert into t1 values (1,1),(2,2); +--let $datadir=`SELECT @@datadir` + +--write_file $datadir/test/t1.TMM +EOF + +--connect (con1,localhost,root,,) +SHOW CREATE TABLE t1; +OPTIMIZE TABLE t1; +--disconnect con1 + +--connect (con1,localhost,root,,) +SHOW CREATE TABLE t1; +OPTIMIZE TABLE t1; +--disconnect con1 + +--connect (con1,localhost,root,,) +SHOW CREATE TABLE t1; +OPTIMIZE TABLE t1; +--disconnect con1 + +# Cleanup +--connection default +DROP TABLE t1; + +# +# Test also Aria +# + +create table t1 (pk int primary key, i int) engine=aria; +insert into t1 values (1,1),(2,2); +--let $datadir=`SELECT @@datadir` + +--write_file $datadir/test/t1.TMM +EOF + +--connect (con1,localhost,root,,) +SHOW CREATE TABLE t1; +OPTIMIZE TABLE t1; +--disconnect con1 + +--connect (con1,localhost,root,,) +SHOW CREATE TABLE t1; +OPTIMIZE TABLE t1; +--disconnect con1 + +--connect (con1,localhost,root,,) +SHOW CREATE TABLE t1; +OPTIMIZE TABLE t1; +--disconnect con1 + +# Cleanup +--connection default +DROP TABLE t1; + +--enable_service_connection + |