diff options
author | Sergei Petrunia <psergey@askmonty.org> | 2014-05-27 20:16:51 +0400 |
---|---|---|
committer | Sergei Petrunia <psergey@askmonty.org> | 2014-05-27 20:16:51 +0400 |
commit | 0925ab9d88f4328810d25392333a4cac11c6e694 (patch) | |
tree | 2b340479746f5e31afc9da3a2f8a5efe7edcddcd | |
parent | eaba1ba4a575c5280d41eaa3deac890dd25d82e4 (diff) | |
download | mariadb-git-0925ab9d88f4328810d25392333a4cac11c6e694.tar.gz |
MDEV-406: ANALYZE $stmt
-Add analyze_stmt.test/result
-rw-r--r-- | mysql-test/r/analyze_stmt.result | 49 | ||||
-rw-r--r-- | mysql-test/t/analyze_stmt.test | 31 |
2 files changed, 80 insertions, 0 deletions
diff --git a/mysql-test/r/analyze_stmt.result b/mysql-test/r/analyze_stmt.result new file mode 100644 index 00000000000..42616bce70b --- /dev/null +++ b/mysql-test/r/analyze_stmt.result @@ -0,0 +1,49 @@ +drop table if exists t0,t1,t2,t3; +create table t0 (a int) engine=myisam; +INSERT INTO t0 VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +create table t1 (a int) engine=myisam; +INSERT INTO t1 select * from t0; +# Try a few basic selects to see that r_rows and r_filtered columns work +analyze select * from t1; +id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra +1 SIMPLE t1 ALL NULL NULL NULL NULL 10 10 100.00 100.00 +analyze select * from t1 where a<5; +id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra +1 SIMPLE t1 ALL NULL NULL NULL NULL 10 10 100.00 50.00 Using where +analyze select * from t1 where a>100; +id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra +1 SIMPLE t1 ALL NULL NULL NULL NULL 10 10 100.00 0.00 Using where +# ANALYZE DELETE will delete rows: +analyze delete from t1 where a in (2,3,4); +id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra +1 SIMPLE t1 ALL NULL NULL NULL NULL 10 NULL 100.00 30.00 Using where +select * from t1; +a +0 +1 +5 +6 +7 +8 +9 +drop table t1; +# ANALYZE UPDATE will make updates: +create table t1(a int, b int); +insert into t1 select a,a from t0; +analyze update t1 set b=100+b where a in (6,7,8); +id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra +1 SIMPLE t1 ALL NULL NULL NULL NULL 10 NULL 100.00 30.00 Using where +select * from t1; +a b +0 0 +1 1 +2 2 +3 3 +4 4 +5 5 +6 106 +7 107 +8 108 +9 9 +drop table t1; +drop table t0; diff --git a/mysql-test/t/analyze_stmt.test b/mysql-test/t/analyze_stmt.test new file mode 100644 index 00000000000..61ebc567057 --- /dev/null +++ b/mysql-test/t/analyze_stmt.test @@ -0,0 +1,31 @@ +# +# Tests for "ANALYZE $statement" feature (PostgreSQL's analog is called EXPLAIN ANALYZE) +# +--disable_warnings +drop table if exists t0,t1,t2,t3; +--enable_warnings + +create table t0 (a int) engine=myisam; +INSERT INTO t0 VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); + +create table t1 (a int) engine=myisam; +INSERT INTO t1 select * from t0; + +--echo # Try a few basic selects to see that r_rows and r_filtered columns work +analyze select * from t1; +analyze select * from t1 where a<5; +analyze select * from t1 where a>100; + +--echo # ANALYZE DELETE will delete rows: +analyze delete from t1 where a in (2,3,4); +select * from t1; +drop table t1; + +--echo # ANALYZE UPDATE will make updates: +create table t1(a int, b int); +insert into t1 select a,a from t0; +analyze update t1 set b=100+b where a in (6,7,8); +select * from t1; +drop table t1; + +drop table t0; |