mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
A fix for a bug with derived tables within subselect
within derived tables within ......
This commit is contained in:
@ -65,3 +65,6 @@ a t
|
|||||||
19 19
|
19 19
|
||||||
20 20
|
20 20
|
||||||
drop table if exists t1;
|
drop table if exists t1;
|
||||||
|
SELECT * FROM (SELECT (SELECT * FROM (SELECT 1 as a)));
|
||||||
|
(SELECT * FROM (SELECT 1 as a))
|
||||||
|
1
|
||||||
|
@ -33,4 +33,5 @@ while ($1)
|
|||||||
}
|
}
|
||||||
enable_query_log;
|
enable_query_log;
|
||||||
SELECT * FROM (SELECT * FROM t1) ORDER BY a ASC LIMIT 0,20;
|
SELECT * FROM (SELECT * FROM t1) ORDER BY a ASC LIMIT 0,20;
|
||||||
drop table if exists t1;
|
drop table if exists t1;
|
||||||
|
SELECT * FROM (SELECT (SELECT * FROM (SELECT 1 as a)));
|
||||||
|
@ -50,15 +50,19 @@ int mysql_derived(THD *thd, LEX *lex, SELECT_LEX_UNIT *unit, TABLE_LIST *t)
|
|||||||
if (res)
|
if (res)
|
||||||
DBUG_RETURN(-1);
|
DBUG_RETURN(-1);
|
||||||
|
|
||||||
for (TABLE_LIST *cursor= (TABLE_LIST *)tables;
|
for (SELECT_LEX *ssl= sl; ssl; ssl= ssl->next_select_in_list())
|
||||||
cursor;
|
|
||||||
cursor=cursor->next)
|
|
||||||
{
|
{
|
||||||
if (cursor->derived)
|
TABLE_LIST *t_tables= (TABLE_LIST *)ssl->table_list.first;
|
||||||
|
for (TABLE_LIST *cursor= (TABLE_LIST *)t_tables;
|
||||||
|
cursor;
|
||||||
|
cursor=cursor->next)
|
||||||
{
|
{
|
||||||
res= mysql_derived(thd, lex, (SELECT_LEX_UNIT *)cursor->derived,
|
if (cursor->derived)
|
||||||
cursor);
|
{
|
||||||
if (res) DBUG_RETURN(res);
|
res= mysql_derived(thd, lex, (SELECT_LEX_UNIT *)cursor->derived,
|
||||||
|
cursor);
|
||||||
|
if (res) DBUG_RETURN(res);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Item *item;
|
Item *item;
|
||||||
|
Reference in New Issue
Block a user