mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 10:14:19 +01:00
Test case for bug lp:611690
The bug itself has been fixed by MWL#89.
This commit is contained in:
parent
4128ec4852
commit
5f5cbf7684
2 changed files with 132 additions and 0 deletions
|
@ -1815,4 +1815,72 @@ SELECT DISTINCT f4
|
|||
FROM t1));
|
||||
f2 f1
|
||||
drop table t1, t2, t3, t4;
|
||||
#
|
||||
# LP BUG#611690 Crash in select_describe() with nested subqueries
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
col_int_key int(11) DEFAULT NULL,
|
||||
col_varchar_key varchar(1) DEFAULT NULL,
|
||||
col_varchar_nokey varchar(1) DEFAULT NULL,
|
||||
KEY col_int_key (col_int_key),
|
||||
KEY col_varchar_key (col_varchar_key,col_int_key)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
INSERT INTO t1 VALUES (8,'v','v');
|
||||
INSERT INTO t1 VALUES (9,'r','r');
|
||||
CREATE TABLE t2 (
|
||||
col_int_key int(11) DEFAULT NULL,
|
||||
col_varchar_key varchar(1) DEFAULT NULL,
|
||||
col_varchar_nokey varchar(1) DEFAULT NULL,
|
||||
KEY col_int_key (col_int_key),
|
||||
KEY col_varchar_key (col_varchar_key,col_int_key)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
INSERT INTO t2 VALUES (2,'w','w');
|
||||
INSERT INTO t2 VALUES (9,'m','m');
|
||||
set @old_optimizer_switch = @@optimizer_switch;
|
||||
set @@optimizer_switch='subquery_cache=off,materialization=on,in_to_exists=off,semijoin=off';
|
||||
EXPLAIN
|
||||
SELECT col_int_key
|
||||
FROM t2
|
||||
WHERE (SELECT SUBQUERY2_t1.col_int_key
|
||||
FROM t1 SUBQUERY2_t1 STRAIGHT_JOIN t1 SUBQUERY2_t2
|
||||
ON SUBQUERY2_t2.col_varchar_key
|
||||
WHERE SUBQUERY2_t2.col_varchar_nokey IN
|
||||
(SELECT col_varchar_nokey FROM t1 GROUP BY col_varchar_nokey));
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t2 index NULL col_int_key 5 NULL 2 Using index
|
||||
2 SUBQUERY SUBQUERY2_t1 index NULL col_int_key 5 NULL 2 Using index
|
||||
2 SUBQUERY SUBQUERY2_t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
3 SUBQUERY t1 ALL NULL NULL NULL NULL 2 Using temporary
|
||||
SELECT col_int_key
|
||||
FROM t2
|
||||
WHERE (SELECT SUBQUERY2_t1.col_int_key
|
||||
FROM t1 SUBQUERY2_t1 STRAIGHT_JOIN t1 SUBQUERY2_t2
|
||||
ON SUBQUERY2_t2.col_varchar_key
|
||||
WHERE SUBQUERY2_t2.col_varchar_nokey IN
|
||||
(SELECT col_varchar_nokey FROM t1 GROUP BY col_varchar_nokey));
|
||||
col_int_key
|
||||
set @@optimizer_switch='subquery_cache=off,materialization=off,in_to_exists=on,semijoin=off';
|
||||
EXPLAIN
|
||||
SELECT col_int_key
|
||||
FROM t2
|
||||
WHERE (SELECT SUBQUERY2_t1.col_int_key
|
||||
FROM t1 SUBQUERY2_t1 STRAIGHT_JOIN t1 SUBQUERY2_t2
|
||||
ON SUBQUERY2_t2.col_varchar_key
|
||||
WHERE SUBQUERY2_t2.col_varchar_nokey IN
|
||||
(SELECT col_varchar_nokey FROM t1 GROUP BY col_varchar_nokey));
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t2 index NULL col_int_key 5 NULL 2 Using index
|
||||
2 SUBQUERY SUBQUERY2_t1 index NULL col_int_key 5 NULL 2 Using index
|
||||
2 SUBQUERY SUBQUERY2_t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
3 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 2 Using temporary
|
||||
SELECT col_int_key
|
||||
FROM t2
|
||||
WHERE (SELECT SUBQUERY2_t1.col_int_key
|
||||
FROM t1 SUBQUERY2_t1 STRAIGHT_JOIN t1 SUBQUERY2_t2
|
||||
ON SUBQUERY2_t2.col_varchar_key
|
||||
WHERE SUBQUERY2_t2.col_varchar_nokey IN
|
||||
(SELECT col_varchar_nokey FROM t1 GROUP BY col_varchar_nokey));
|
||||
col_int_key
|
||||
drop table t1, t2;
|
||||
set @@optimizer_switch = @old_optimizer_switch;
|
||||
set optimizer_switch=@subselect4_tmp;
|
||||
|
|
|
@ -1494,4 +1494,68 @@ WHERE t3.f1 = (
|
|||
|
||||
drop table t1, t2, t3, t4;
|
||||
|
||||
--echo #
|
||||
--echo # LP BUG#611690 Crash in select_describe() with nested subqueries
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (
|
||||
col_int_key int(11) DEFAULT NULL,
|
||||
col_varchar_key varchar(1) DEFAULT NULL,
|
||||
col_varchar_nokey varchar(1) DEFAULT NULL,
|
||||
KEY col_int_key (col_int_key),
|
||||
KEY col_varchar_key (col_varchar_key,col_int_key)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
INSERT INTO t1 VALUES (8,'v','v');
|
||||
INSERT INTO t1 VALUES (9,'r','r');
|
||||
|
||||
CREATE TABLE t2 (
|
||||
col_int_key int(11) DEFAULT NULL,
|
||||
col_varchar_key varchar(1) DEFAULT NULL,
|
||||
col_varchar_nokey varchar(1) DEFAULT NULL,
|
||||
KEY col_int_key (col_int_key),
|
||||
KEY col_varchar_key (col_varchar_key,col_int_key)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
INSERT INTO t2 VALUES (2,'w','w');
|
||||
INSERT INTO t2 VALUES (9,'m','m');
|
||||
|
||||
set @old_optimizer_switch = @@optimizer_switch;
|
||||
|
||||
set @@optimizer_switch='subquery_cache=off,materialization=on,in_to_exists=off,semijoin=off';
|
||||
EXPLAIN
|
||||
SELECT col_int_key
|
||||
FROM t2
|
||||
WHERE (SELECT SUBQUERY2_t1.col_int_key
|
||||
FROM t1 SUBQUERY2_t1 STRAIGHT_JOIN t1 SUBQUERY2_t2
|
||||
ON SUBQUERY2_t2.col_varchar_key
|
||||
WHERE SUBQUERY2_t2.col_varchar_nokey IN
|
||||
(SELECT col_varchar_nokey FROM t1 GROUP BY col_varchar_nokey));
|
||||
SELECT col_int_key
|
||||
FROM t2
|
||||
WHERE (SELECT SUBQUERY2_t1.col_int_key
|
||||
FROM t1 SUBQUERY2_t1 STRAIGHT_JOIN t1 SUBQUERY2_t2
|
||||
ON SUBQUERY2_t2.col_varchar_key
|
||||
WHERE SUBQUERY2_t2.col_varchar_nokey IN
|
||||
(SELECT col_varchar_nokey FROM t1 GROUP BY col_varchar_nokey));
|
||||
|
||||
set @@optimizer_switch='subquery_cache=off,materialization=off,in_to_exists=on,semijoin=off';
|
||||
EXPLAIN
|
||||
SELECT col_int_key
|
||||
FROM t2
|
||||
WHERE (SELECT SUBQUERY2_t1.col_int_key
|
||||
FROM t1 SUBQUERY2_t1 STRAIGHT_JOIN t1 SUBQUERY2_t2
|
||||
ON SUBQUERY2_t2.col_varchar_key
|
||||
WHERE SUBQUERY2_t2.col_varchar_nokey IN
|
||||
(SELECT col_varchar_nokey FROM t1 GROUP BY col_varchar_nokey));
|
||||
SELECT col_int_key
|
||||
FROM t2
|
||||
WHERE (SELECT SUBQUERY2_t1.col_int_key
|
||||
FROM t1 SUBQUERY2_t1 STRAIGHT_JOIN t1 SUBQUERY2_t2
|
||||
ON SUBQUERY2_t2.col_varchar_key
|
||||
WHERE SUBQUERY2_t2.col_varchar_nokey IN
|
||||
(SELECT col_varchar_nokey FROM t1 GROUP BY col_varchar_nokey));
|
||||
|
||||
drop table t1, t2;
|
||||
|
||||
set @@optimizer_switch = @old_optimizer_switch;
|
||||
|
||||
set optimizer_switch=@subselect4_tmp;
|
||||
|
|
Loading…
Add table
Reference in a new issue