diff options
Diffstat (limited to 'mysql-test/t/subselect_sj2.test')
-rw-r--r-- | mysql-test/t/subselect_sj2.test | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/mysql-test/t/subselect_sj2.test b/mysql-test/t/subselect_sj2.test index 92fc500cf55..0f701cf9624 100644 --- a/mysql-test/t/subselect_sj2.test +++ b/mysql-test/t/subselect_sj2.test @@ -1225,5 +1225,34 @@ WHERE alias3.d IN ( set optimizer_prune_level=@tmp_951283; DROP TABLE t1,t2; + +--source include/have_innodb.inc + +--disable_warnings +DROP TABLE IF EXISTS t1,t2,t3,t4; +--enable_warnings + +--echo # +--echo # MDEV-4782: Valgrind warnings (Conditional jump or move depends on uninitialised value) with InnoDB, semijoin +--echo # +CREATE TABLE t1 ( t1_pk1 varchar(3), t1_pk2 varchar(52), PRIMARY KEY (t1_pk1,t1_pk2)) ENGINE=InnoDB; +INSERT INTO t1 VALUES ('CHN','Chinese'),('USA','English'); + +CREATE TABLE t2 ( t2_i int(11), t2_c varchar(52)) ENGINE=InnoDB; +INSERT INTO t2 VALUES (86,'English'); + +CREATE TABLE t3 ( t3_i int(11), t3_c varchar(35)) ENGINE=InnoDB; +INSERT INTO t3 VALUES (3989,'Abilene'),(3873,'Akron'); + +create table t4 like t1; +insert into t4 select * from t1; + +SELECT * FROM t1, t3 WHERE t3_c IN ( SELECT t1_pk2 FROM t4, t2 WHERE t2_c = t1_pk2 AND t2_i >= t3_i ) AND ( t1_pk1 = 'POL' ); + +explain +SELECT * FROM t1, t3 WHERE t3_c IN ( SELECT t1_pk2 FROM t4, t2 WHERE t2_c = t1_pk2 AND t2_i >= t3_i ) AND ( t1_pk1 = 'POL' ); + +DROP TABLE t1,t2,t3,t4; + --echo # This must be the last in the file: set optimizer_switch=@subselect_sj2_tmp; |