summaryrefslogtreecommitdiff
path: root/sql/sql_lex.cc
diff options
context:
space:
mode:
authorunknown <bell@sanja.is.com.ua>2003-01-26 21:30:35 +0200
committerunknown <bell@sanja.is.com.ua>2003-01-26 21:30:35 +0200
commita72ebebf5dace430460ebdd9e96322780fcfe882 (patch)
treee194c81cba3115272354ebd186e5faa8e278d078 /sql/sql_lex.cc
parentfbd882fca6902e5038bef1d25c1afbfad892d09a (diff)
downloadmariadb-git-a72ebebf5dace430460ebdd9e96322780fcfe882.tar.gz
after merge fix of 577 task (SCRUM, pre commit to be able to merge with static tables optimization fix)
fixed derived tables with subselect inside mysql-test/r/derived.result: test of subselects inside derived tables mysql-test/t/derived.test: test of subselects inside derived tables mysql-test/t/subselect.test: subselect test (not finished) sql/item.cc: after merge fix sql/item.h: after merge fix sql/item_cmpfunc.h: after merge fix sql/item_subselect.cc: after merge fix sql/item_sum.h: after merge fix sql/mysql_priv.h: fixed derived tables with subselect inside sql/sql_class.h: after merge fix sql/sql_derived.cc: fixed derived tables with subselect inside sql/sql_lex.cc: fixed derived tables with subselect inside sql/sql_lex.h: fixed derived tables with subselect inside sql/sql_parse.cc: fixed derived tables with subselect inside after merge fix sql/sql_prepare.cc: after merge fix sql/sql_select.cc: after merge fix fixed derived tables with subselect inside
Diffstat (limited to 'sql/sql_lex.cc')
-rw-r--r--sql/sql_lex.cc12
1 files changed, 7 insertions, 5 deletions
diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc
index 764b7650f1d..2b6c337bedb 100644
--- a/sql/sql_lex.cc
+++ b/sql/sql_lex.cc
@@ -1245,15 +1245,17 @@ ulong st_select_lex_node::get_table_join_options() { return 0; }
// interface
bool st_select_lex_unit::create_total_list(THD *thd, st_lex *lex,
- TABLE_LIST **result)
+ TABLE_LIST **result,
+ bool check_derived)
{
*result= 0;
- return create_total_list_n_last_return(thd, lex, &result);
+ return create_total_list_n_last_return(thd, lex, &result, check_derived);
}
// list creator
bool st_select_lex_unit::create_total_list_n_last_return(THD *thd, st_lex *lex,
- TABLE_LIST ***result)
+ TABLE_LIST ***result,
+ bool check_derived)
{
TABLE_LIST *slave_list_first=0, **slave_list_last= &slave_list_first;
TABLE_LIST **new_table_list= *result, *aux;
@@ -1266,13 +1268,13 @@ bool st_select_lex_unit::create_total_list_n_last_return(THD *thd, st_lex *lex,
net_printf(thd,ER_WRONG_USAGE,"UNION","ORDER BY");
return 1;
}
- if (sl->linkage == DERIVED_TABLE_TYPE && !sl->next_select())
+ if (sl->linkage == DERIVED_TABLE_TYPE && !check_derived)
continue;
for (SELECT_LEX_UNIT *inner= sl->first_inner_unit();
inner;
inner= inner->next_unit())
if (inner->create_total_list_n_last_return(thd, lex,
- &slave_list_last))
+ &slave_list_last, 0))
return 1;
if ((aux= (TABLE_LIST*) sl->table_list.first))
{