MDEV-411: (different results for EXPLAIN and SHOW EXPLAIN)
- Added a testcase
This commit is contained in:
parent
5e4044e92c
commit
f5fba6564b
@ -1130,6 +1130,45 @@ set names default;
|
|||||||
#
|
#
|
||||||
show explain for foo;
|
show explain for foo;
|
||||||
ERROR HY000: You may only use constant expressions in this statement
|
ERROR HY000: You may only use constant expressions in this statement
|
||||||
|
#
|
||||||
|
# MDEV-411: SHOW EXPLAIN: For dependent subquery EXPLAIN produces type=index, key, 'Using where; Using index',
|
||||||
|
# while SHOW EXPLAIN says type=ALL, no key, 'Range checked for each record'
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a INT NOT NULL, KEY(a)) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t1 VALUES (7),(0);
|
||||||
|
CREATE TABLE t2 (b INT NOT NULL) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t2 VALUES (0),(8);
|
||||||
|
explain
|
||||||
|
SELECT SUM(b) FROM ( SELECT * FROM t1 ) AS alias1, t2
|
||||||
|
WHERE b <= ANY (
|
||||||
|
SELECT a FROM t1
|
||||||
|
WHERE a = b + SLEEP(0.2) OR a >= ( SELECT SUM(b) FROM t2 ));
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY t1 index NULL a 4 NULL 2 Using index
|
||||||
|
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where
|
||||||
|
3 DEPENDENT SUBQUERY t1 ALL a NULL NULL NULL 2 Range checked for each record (index map: 0x1)
|
||||||
|
4 SUBQUERY t2 ALL NULL NULL NULL NULL 2
|
||||||
|
set @show_explain_probe_select_id=1;
|
||||||
|
set debug_dbug='+d,show_explain_probe_join_exec_start';
|
||||||
|
SELECT SUM(b) FROM ( SELECT * FROM t1 ) AS alias1, t2
|
||||||
|
WHERE b <= ANY (
|
||||||
|
SELECT a FROM t1
|
||||||
|
WHERE a = b + SLEEP(0.2) OR a >= ( SELECT SUM(b) FROM t2 ));
|
||||||
|
show explain for $thr2;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY t1 index NULL a 4 NULL 2 Using index
|
||||||
|
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where
|
||||||
|
3 DEPENDENT SUBQUERY t1 ALL a NULL NULL NULL 2 Range checked for each record (index map: 0x1)
|
||||||
|
4 SUBQUERY t2 ALL NULL NULL NULL NULL 2
|
||||||
|
Warnings:
|
||||||
|
Note 1003 SELECT SUM(b) FROM ( SELECT * FROM t1 ) AS alias1, t2
|
||||||
|
WHERE b <= ANY (
|
||||||
|
SELECT a FROM t1
|
||||||
|
WHERE a = b + SLEEP(0.2) OR a >= ( SELECT SUM(b) FROM t2 ))
|
||||||
|
SUM(b)
|
||||||
|
0
|
||||||
|
set debug_dbug=@old_debug;
|
||||||
|
DROP TABLE t1,t2;
|
||||||
# End
|
# End
|
||||||
drop table t0;
|
drop table t0;
|
||||||
set debug_sync='RESET';
|
set debug_sync='RESET';
|
||||||
|
@ -1128,9 +1128,44 @@ set names default;
|
|||||||
--error ER_SET_CONSTANTS_ONLY
|
--error ER_SET_CONSTANTS_ONLY
|
||||||
show explain for foo;
|
show explain for foo;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-411: SHOW EXPLAIN: For dependent subquery EXPLAIN produces type=index, key, 'Using where; Using index',
|
||||||
|
--echo # while SHOW EXPLAIN says type=ALL, no key, 'Range checked for each record'
|
||||||
|
--echo #
|
||||||
|
CREATE TABLE t1 (a INT NOT NULL, KEY(a)) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t1 VALUES (7),(0);
|
||||||
|
|
||||||
|
CREATE TABLE t2 (b INT NOT NULL) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t2 VALUES (0),(8);
|
||||||
|
|
||||||
|
explain
|
||||||
|
SELECT SUM(b) FROM ( SELECT * FROM t1 ) AS alias1, t2
|
||||||
|
WHERE b <= ANY (
|
||||||
|
SELECT a FROM t1
|
||||||
|
WHERE a = b + SLEEP(0.2) OR a >= ( SELECT SUM(b) FROM t2 ));
|
||||||
|
|
||||||
|
|
||||||
|
set @show_explain_probe_select_id=1;
|
||||||
|
set debug_dbug='+d,show_explain_probe_join_exec_start';
|
||||||
|
|
||||||
|
send
|
||||||
|
SELECT SUM(b) FROM ( SELECT * FROM t1 ) AS alias1, t2
|
||||||
|
WHERE b <= ANY (
|
||||||
|
SELECT a FROM t1
|
||||||
|
WHERE a = b + SLEEP(0.2) OR a >= ( SELECT SUM(b) FROM t2 ));
|
||||||
|
|
||||||
|
connection default;
|
||||||
|
--source include/wait_condition.inc
|
||||||
|
evalp show explain for $thr2;
|
||||||
|
|
||||||
|
connection con1;
|
||||||
|
reap;
|
||||||
|
|
||||||
|
set debug_dbug=@old_debug;
|
||||||
|
DROP TABLE t1,t2;
|
||||||
|
|
||||||
--echo # End
|
--echo # End
|
||||||
drop table t0;
|
drop table t0;
|
||||||
|
|
||||||
connection default;
|
connection default;
|
||||||
disconnect con1;
|
disconnect con1;
|
||||||
set debug_sync='RESET';
|
set debug_sync='RESET';
|
||||||
|
Loading…
x
Reference in New Issue
Block a user