diff options
author | Sergei Petrunia <psergey@askmonty.org> | 2014-06-26 18:32:18 +0400 |
---|---|---|
committer | Sergei Petrunia <psergey@askmonty.org> | 2014-06-26 18:32:18 +0400 |
commit | a787edd7e660a00f015ca0a25ded0952085f7451 (patch) | |
tree | 6715da05c41c835f5c451b6e65989197880e9356 /mysql-test | |
parent | 12d6f89b073351169e070355e8db363d0d649749 (diff) | |
download | mariadb-git-a787edd7e660a00f015ca0a25ded0952085f7451.tar.gz |
MDEV-6395: Make ANALYZE UPDATE/DELETE handle the degenerate query plans.
Diffstat (limited to 'mysql-test')
-rw-r--r-- | mysql-test/r/analyze_stmt.result | 20 | ||||
-rw-r--r-- | mysql-test/t/analyze_stmt.test | 17 |
2 files changed, 34 insertions, 3 deletions
diff --git a/mysql-test/r/analyze_stmt.result b/mysql-test/r/analyze_stmt.result index 6f9bdb11fc1..7a18dc836e0 100644 --- a/mysql-test/r/analyze_stmt.result +++ b/mysql-test/r/analyze_stmt.result @@ -214,4 +214,22 @@ analyze update t2,t1 set t2.i=5 where t2.a=t1.a; ERROR 42S22: Unknown column 't2.a' in 'where clause' analyze delete t1 from t2,t1 where t2.a=t1.a; ERROR 42S22: Unknown column 't2.a' in 'where clause' -drop table t1,t2; +drop table t1, t2; +# +# MDEV-6395: ANALYZE UPDATE/DELETE with impossible where does not produce any output +# +create table t1 (a int, b int, key(a)); +insert into t1 values (1,1),(2,2),(3,3),(4,4),(5,5); +analyze delete from t1 where 1 > 2; +id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra +1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE +analyze delete from t1 where a > 30 and a < 10; +id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra +1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE +analyze update t1 set b=12345 where 1 > 2; +id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra +1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE +analyze update t1 set b=12345 where a > 30 and a < 10; +id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra +1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE +drop table t1; diff --git a/mysql-test/t/analyze_stmt.test b/mysql-test/t/analyze_stmt.test index d310ab2a3fb..67a7456a473 100644 --- a/mysql-test/t/analyze_stmt.test +++ b/mysql-test/t/analyze_stmt.test @@ -1,5 +1,5 @@ # -# Tests for "ANALYZE $statement" feature (PostgreSQL's analog is called EXPLAIN ANALYZE) +# Tests for "ANALYZE $statement" feature # --disable_warnings drop table if exists t0,t1,t2,t3; @@ -169,5 +169,18 @@ analyze update t2,t1 set t2.i=5 where t2.a=t1.a; --error ER_BAD_FIELD_ERROR analyze delete t1 from t2,t1 where t2.a=t1.a; -drop table t1,t2; +drop table t1, t2; +--echo # +--echo # MDEV-6395: ANALYZE UPDATE/DELETE with impossible where does not produce any output +--echo # +create table t1 (a int, b int, key(a)); +insert into t1 values (1,1),(2,2),(3,3),(4,4),(5,5); + +analyze delete from t1 where 1 > 2; +analyze delete from t1 where a > 30 and a < 10; + +analyze update t1 set b=12345 where 1 > 2; +analyze update t1 set b=12345 where a > 30 and a < 10; + +drop table t1; |