From a787edd7e660a00f015ca0a25ded0952085f7451 Mon Sep 17 00:00:00 2001 From: Sergei Petrunia Date: Thu, 26 Jun 2014 18:32:18 +0400 Subject: MDEV-6395: Make ANALYZE UPDATE/DELETE handle the degenerate query plans. --- mysql-test/r/analyze_stmt.result | 20 +++++++++++++++++++- mysql-test/t/analyze_stmt.test | 17 +++++++++++++++-- 2 files changed, 34 insertions(+), 3 deletions(-) (limited to 'mysql-test') 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; -- cgit v1.2.1