Commit ae729f93 authored by unknown's avatar unknown

A fix for a bug with derived tables within subselect

within derived tables within ......

parent a14db06b
...@@ -65,3 +65,6 @@ a t ...@@ -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
...@@ -34,3 +34,4 @@ while ($1) ...@@ -34,3 +34,4 @@ 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,7 +50,10 @@ int mysql_derived(THD *thd, LEX *lex, SELECT_LEX_UNIT *unit, TABLE_LIST *t) ...@@ -50,7 +50,10 @@ 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())
{
TABLE_LIST *t_tables= (TABLE_LIST *)ssl->table_list.first;
for (TABLE_LIST *cursor= (TABLE_LIST *)t_tables;
cursor; cursor;
cursor=cursor->next) cursor=cursor->next)
{ {
...@@ -61,6 +64,7 @@ int mysql_derived(THD *thd, LEX *lex, SELECT_LEX_UNIT *unit, TABLE_LIST *t) ...@@ -61,6 +64,7 @@ int mysql_derived(THD *thd, LEX *lex, SELECT_LEX_UNIT *unit, TABLE_LIST *t)
if (res) DBUG_RETURN(res); if (res) DBUG_RETURN(res);
} }
} }
}
Item *item; Item *item;
List_iterator<Item> it(sl->item_list); List_iterator<Item> it(sl->item_list);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment