1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-07 17:42:39 +03:00

MDEV-4782: Valgrind warnings (Conditional jump or move depends on uninitialised value) with InnoDB, semijoin

- in sub_select(): don't call table->file->position() when reading the first record
  produced an error.
This commit is contained in:
Sergey Petrunya
2013-07-16 15:57:27 +04:00
parent 47c1b04079
commit 947c2bdbc0
5 changed files with 96 additions and 1 deletions

View File

@@ -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;