From 7457181ba43870ca9a619d74b7614b868f0a7511 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Thu, 24 Oct 2019 21:20:53 +0300 Subject: [PATCH] Clean up innodb.innodb_stats_persistent The test was marked big for no apparent reason. Usw wait_all_purged.inc in the canonical way, and make use of the sequence engine. --- .../innodb/r/innodb_stats_persistent.result | 29 +++++++----------- .../innodb/t/innodb_stats_persistent.test | 30 +++++++------------ 2 files changed, 21 insertions(+), 38 deletions(-) diff --git a/mysql-test/suite/innodb/r/innodb_stats_persistent.result b/mysql-test/suite/innodb/r/innodb_stats_persistent.result index 41893bf47c1..e8534e7e8f3 100644 --- a/mysql-test/suite/innodb/r/innodb_stats_persistent.result +++ b/mysql-test/suite/innodb/r/innodb_stats_persistent.result @@ -1,22 +1,15 @@ +SET @saved_frequency = @@GLOBAL.innodb_purge_rseg_truncate_frequency; +SET GLOBAL innodb_purge_rseg_truncate_frequency = 1; SET @saved_include_delete_marked = @@GLOBAL.innodb_stats_include_delete_marked; SET GLOBAL innodb_stats_include_delete_marked = ON; SET @saved_traditional = @@GLOBAL.innodb_stats_traditional; SET GLOBAL innodb_stats_traditional=false; SET @saved_modified_counter = @@GLOBAL.innodb_stats_modified_counter; SET GLOBAL innodb_stats_modified_counter=1; -CREATE TABLE t0 (id SERIAL, val INT UNSIGNED NOT NULL, KEY(val)) +CREATE TABLE t1 (id SERIAL, val INT UNSIGNED NOT NULL, KEY(val)) ENGINE=INNODB STATS_PERSISTENT=1,STATS_AUTO_RECALC=1; -CREATE TABLE t1 LIKE t0; -CREATE TABLE t2 LIKE t0; -INSERT INTO t0 (val) VALUES (4); -INSERT INTO t0 (val) SELECT 4 FROM t0; -INSERT INTO t0 (val) SELECT 4 FROM t0; -INSERT INTO t0 (val) SELECT 4 FROM t0; -INSERT INTO t0 (val) SELECT 4 FROM t0; -INSERT INTO t1 SELECT * FROM t0; -SELECT COUNT(*) FROM t1; -COUNT(*) -16 +CREATE TABLE t2 LIKE t1; +INSERT INTO t1 (val) SELECT 4 FROM seq_1_to_16; ANALYZE TABLE t1; Table Op Msg_type Msg_text test.t1 analyze status OK @@ -48,7 +41,7 @@ COUNT(*) 0 connection default; BEGIN; -INSERT INTO t2 SELECT * FROM t0; +INSERT INTO t2 (val) SELECT 4 FROM seq_1_to_16; # The INSERT will show up before COMMIT. EXPLAIN SELECT * FROM t2 WHERE val=4; id select_type table type possible_keys key key_len ref rows Extra @@ -65,17 +58,14 @@ connection con1; EXPLAIN SELECT * FROM t2 WHERE val=4; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t2 ref val val 4 const 1 Using index -SET @saved_frequency = @@GLOBAL.innodb_purge_rseg_truncate_frequency; -SET GLOBAL innodb_purge_rseg_truncate_frequency = 1; InnoDB 0 transactions not purged -SET GLOBAL innodb_purge_rseg_truncate_frequency = @saved_frequency; # After COMMIT and purge, the DELETE must show up. EXPLAIN SELECT * FROM t1 WHERE val=4; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ref val val 4 const 1 Using index SET GLOBAL innodb_stats_include_delete_marked = OFF; BEGIN; -INSERT INTO t1 SELECT * FROM t0; +INSERT INTO t1 (val) SELECT 4 FROM seq_1_to_16; EXPLAIN SELECT * FROM t1 WHERE val=4; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ref val val 4 const 16 Using index @@ -84,7 +74,7 @@ EXPLAIN SELECT * FROM t1 WHERE val=4; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ref val val 4 const 1 Using index BEGIN; -INSERT INTO t1 SELECT * FROM t0; +INSERT INTO t1 (val) SELECT 4 FROM seq_1_to_16; COMMIT; EXPLAIN SELECT * FROM t1 WHERE val=4; id select_type table type possible_keys key key_len ref rows Extra @@ -110,7 +100,8 @@ COUNT(*) 16 disconnect con1; connection default; -DROP TABLE t0,t1,t2; +DROP TABLE t1,t2; SET GLOBAL innodb_stats_include_delete_marked = @saved_include_delete_marked; SET GLOBAL innodb_stats_traditional = @saved_traditional; SET GLOBAL innodb_stats_modified_counter = @saved_modified_counter; +SET GLOBAL innodb_purge_rseg_truncate_frequency = @saved_frequency; diff --git a/mysql-test/suite/innodb/t/innodb_stats_persistent.test b/mysql-test/suite/innodb/t/innodb_stats_persistent.test index 652b201c4b4..f79ae37e8de 100644 --- a/mysql-test/suite/innodb/t/innodb_stats_persistent.test +++ b/mysql-test/suite/innodb/t/innodb_stats_persistent.test @@ -1,6 +1,8 @@ --source include/have_innodb.inc ---source include/big_test.inc +--source include/have_sequence.inc +SET @saved_frequency = @@GLOBAL.innodb_purge_rseg_truncate_frequency; +SET GLOBAL innodb_purge_rseg_truncate_frequency = 1; SET @saved_include_delete_marked = @@GLOBAL.innodb_stats_include_delete_marked; SET GLOBAL innodb_stats_include_delete_marked = ON; SET @saved_traditional = @@GLOBAL.innodb_stats_traditional; @@ -8,19 +10,11 @@ SET GLOBAL innodb_stats_traditional=false; SET @saved_modified_counter = @@GLOBAL.innodb_stats_modified_counter; SET GLOBAL innodb_stats_modified_counter=1; -CREATE TABLE t0 (id SERIAL, val INT UNSIGNED NOT NULL, KEY(val)) +CREATE TABLE t1 (id SERIAL, val INT UNSIGNED NOT NULL, KEY(val)) ENGINE=INNODB STATS_PERSISTENT=1,STATS_AUTO_RECALC=1; -CREATE TABLE t1 LIKE t0; -CREATE TABLE t2 LIKE t0; +CREATE TABLE t2 LIKE t1; -INSERT INTO t0 (val) VALUES (4); -INSERT INTO t0 (val) SELECT 4 FROM t0; -INSERT INTO t0 (val) SELECT 4 FROM t0; -INSERT INTO t0 (val) SELECT 4 FROM t0; -INSERT INTO t0 (val) SELECT 4 FROM t0; - -INSERT INTO t1 SELECT * FROM t0; -SELECT COUNT(*) FROM t1; +INSERT INTO t1 (val) SELECT 4 FROM seq_1_to_16; ANALYZE TABLE t1; connect(con1, localhost, root,,); @@ -46,7 +40,7 @@ SELECT COUNT(*) FROM t1; connection default; BEGIN; -INSERT INTO t2 SELECT * FROM t0; +INSERT INTO t2 (val) SELECT 4 FROM seq_1_to_16; --echo # The INSERT will show up before COMMIT. EXPLAIN SELECT * FROM t2 WHERE val=4; @@ -57,21 +51,18 @@ SELECT COUNT(*) FROM t2; connection con1; EXPLAIN SELECT * FROM t2 WHERE val=4; -SET @saved_frequency = @@GLOBAL.innodb_purge_rseg_truncate_frequency; -SET GLOBAL innodb_purge_rseg_truncate_frequency = 1; --source include/wait_all_purged.inc -SET GLOBAL innodb_purge_rseg_truncate_frequency = @saved_frequency; --echo # After COMMIT and purge, the DELETE must show up. EXPLAIN SELECT * FROM t1 WHERE val=4; SET GLOBAL innodb_stats_include_delete_marked = OFF; BEGIN; -INSERT INTO t1 SELECT * FROM t0; +INSERT INTO t1 (val) SELECT 4 FROM seq_1_to_16; EXPLAIN SELECT * FROM t1 WHERE val=4; ROLLBACK; EXPLAIN SELECT * FROM t1 WHERE val=4; BEGIN; -INSERT INTO t1 SELECT * FROM t0; +INSERT INTO t1 (val) SELECT 4 FROM seq_1_to_16; COMMIT; EXPLAIN SELECT * FROM t1 WHERE val=4; BEGIN; @@ -89,7 +80,8 @@ disconnect con1; connection default; -DROP TABLE t0,t1,t2; +DROP TABLE t1,t2; SET GLOBAL innodb_stats_include_delete_marked = @saved_include_delete_marked; SET GLOBAL innodb_stats_traditional = @saved_traditional; SET GLOBAL innodb_stats_modified_counter = @saved_modified_counter; +SET GLOBAL innodb_purge_rseg_truncate_frequency = @saved_frequency;