Bug#11829785 EXPLAIN EXTENDED CRASH WITH RIGHT OUTER JOIN, SUBQUERIES
This is a backport of Bug #46860 Crash/segfault using EXPLAIN EXTENDED on query using UNION in subquery.
This commit is contained in:
parent
3e762332ec
commit
4a6d020e8d
@ -180,7 +180,6 @@ ERROR 42000: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP col
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
Error 1140 Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
|
||||
Note 1003 select 1 AS `1` from `test`.`t1` where <not>(<exists>(...))
|
||||
SET SESSION sql_mode=@old_sql_mode;
|
||||
DROP TABLE t1;
|
||||
End of 5.0 tests.
|
||||
@ -318,3 +317,17 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
DEALLOCATE PREPARE stmt;
|
||||
DROP TABLE t1;
|
||||
End of 5.1 tests.
|
||||
#
|
||||
# Bug#11829785 EXPLAIN EXTENDED CRASH WITH RIGHT OUTER JOIN, SUBQUERIES
|
||||
#
|
||||
CREATE TABLE t1(a INT);
|
||||
INSERT INTO t1 VALUES (0), (0);
|
||||
PREPARE s FROM
|
||||
'EXPLAIN EXTENDED
|
||||
SELECT SUBSTRING(1, (SELECT 1 FROM t1 a1 RIGHT OUTER JOIN t1 ON 0)) AS d
|
||||
FROM t1 WHERE 0 > ANY (SELECT @a FROM t1)';
|
||||
EXECUTE s;
|
||||
ERROR 21000: Subquery returns more than 1 row
|
||||
DEALLOCATE PREPARE s;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
|
@ -1056,7 +1056,6 @@ ERROR HY000: Only constant XPATH queries are supported
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
Error 1105 Only constant XPATH queries are supported
|
||||
Note 1003 select updatexml('1',`test`.`t1`.`a`,'1') AS `UPDATEXML('1', a, '1')` from `test`.`t1` order by (select group_concat(1 separator ',') from `test`.`t1`)
|
||||
DROP TABLE t1;
|
||||
End of 5.1 tests
|
||||
DROP TABLE IF EXISTS t1, t2;
|
||||
|
@ -865,9 +865,6 @@ Level Code Message
|
||||
Note 1276 Field or reference 'test.t1.a' of SELECT #3 was resolved in SELECT #2
|
||||
Note 1276 Field or reference 'test.t1.c' of SELECT #3 was resolved in SELECT #2
|
||||
Error 1054 Unknown column 'c' in 'field list'
|
||||
Note 1003 select `c` AS `c` from (select (select count(`test`.`t1`.`a`) from dual group by `c`) AS `(SELECT COUNT(a) FROM
|
||||
(SELECT COUNT(b) FROM t1) AS x GROUP BY c
|
||||
)` from `test`.`t1` group by `test`.`t1`.`b`) `y`
|
||||
DROP TABLE t1;
|
||||
End of 5.0 tests
|
||||
create table t0 (a int);
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Test of different EXPLAIN's
|
||||
# Test of different EXPLAINs
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
@ -275,3 +275,24 @@ DEALLOCATE PREPARE stmt;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo End of 5.1 tests.
|
||||
|
||||
--echo #
|
||||
--echo # Bug#11829785 EXPLAIN EXTENDED CRASH WITH RIGHT OUTER JOIN, SUBQUERIES
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1(a INT);
|
||||
|
||||
INSERT INTO t1 VALUES (0), (0);
|
||||
|
||||
PREPARE s FROM
|
||||
'EXPLAIN EXTENDED
|
||||
SELECT SUBSTRING(1, (SELECT 1 FROM t1 a1 RIGHT OUTER JOIN t1 ON 0)) AS d
|
||||
FROM t1 WHERE 0 > ANY (SELECT @a FROM t1)';
|
||||
|
||||
--error ER_SUBQUERY_NO_1_ROW
|
||||
EXECUTE s;
|
||||
|
||||
DEALLOCATE PREPARE s;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
|
@ -4434,7 +4434,11 @@ static bool execute_sqlcom_select(THD *thd, TABLE_LIST *all_tables)
|
||||
return 1; /* purecov: inspected */
|
||||
thd->send_explain_fields(result);
|
||||
res= mysql_explain_union(thd, &thd->lex->unit, result);
|
||||
if (lex->describe & DESCRIBE_EXTENDED)
|
||||
/*
|
||||
The code which prints the extended description is not robust
|
||||
against malformed queries, so skip it if we have an error.
|
||||
*/
|
||||
if (!res && (lex->describe & DESCRIBE_EXTENDED))
|
||||
{
|
||||
char buff[1024];
|
||||
String str(buff,(uint32) sizeof(buff), system_charset_info);
|
||||
|
Loading…
x
Reference in New Issue
Block a user