diff options
Diffstat (limited to 'mysql-test/main/stat_tables_flush.test')
-rw-r--r-- | mysql-test/main/stat_tables_flush.test | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/mysql-test/main/stat_tables_flush.test b/mysql-test/main/stat_tables_flush.test new file mode 100644 index 00000000..4c916f47 --- /dev/null +++ b/mysql-test/main/stat_tables_flush.test @@ -0,0 +1,72 @@ +--source include/have_sequence.inc + +--echo # +--echo # Check that ANALYZE TABLE is remembered by MyISAM and Aria +--echo # + +create table t1 (a int) engine=myisam; +insert into t1 select seq from seq_0_to_99; +analyze table t1 persistent for all; +flush tables; +analyze table t1 persistent for all; +update t1 set a=100 where a=1; +analyze table t1 persistent for all; +update t1 set a=100 where a=2; +flush tables; +analyze table t1 persistent for all; + +--echo # Aria transactional=0 +ALTER TABLE t1 ENGINE=aria transactional=0; +analyze table t1 persistent for all; +update t1 set a=100 where a=10; +analyze table t1 persistent for all; +analyze table t1 persistent for all; +flush tables; +analyze table t1 persistent for all; +update t1 set a=100 where a=11; +analyze table t1 persistent for all; +update t1 set a=100 where a=12; +flush tables; +analyze table t1 persistent for all; + +--echo # Aria transactional=1 + +ALTER TABLE t1 ENGINE=aria transactional=1; +analyze table t1 persistent for all; +update t1 set a=100 where a=20; +analyze table t1 persistent for all; +analyze table t1 persistent for all; +flush tables; +analyze table t1 persistent for all; +update t1 set a=100 where a=21; +analyze table t1 persistent for all; +update t1 set a=100 where a=22; +flush tables; +analyze table t1 persistent for all; +drop table t1; + +--echo # +--echo # Test that histograms are read after flush +--echo # + +create table t1 (a int); +insert into t1 select seq from seq_1_to_10; + +insert into t1 select A.seq from seq_10_to_20 A, seq_1_to_9 B; +analyze table t1 persistent for all; + +explain format=json select * from t1 where a between 2 and 5; +explain format=json select * from t1 where a between 12 and 15; + +flush tables; +set @@optimizer_use_condition_selectivity=3; +explain format=json select * from t1 where a between 2 and 5; +set @@optimizer_use_condition_selectivity=4; +explain format=json select * from t1 where a between 2 and 5; + +drop table t1; +set @@optimizer_use_condition_selectivity=default; + +--echo # +--echo # End of 10.6 tests +--echo # |