|
|
|
@ -1780,6 +1780,7 @@ void st_select_lex_unit::exclude_tree() |
|
|
|
|
|
|
|
void st_select_lex::mark_as_dependent(st_select_lex *last, Item *dependency) |
|
|
|
{ |
|
|
|
SELECT_LEX *next_to_last; |
|
|
|
/*
|
|
|
|
Mark all selects from resolved to 1 before select where was |
|
|
|
found table as depended (of select where was found table) |
|
|
|
@ -1787,6 +1788,7 @@ void st_select_lex::mark_as_dependent(st_select_lex *last, Item *dependency) |
|
|
|
for (SELECT_LEX *s= this; |
|
|
|
s && s != last; |
|
|
|
s= s->outer_select()) |
|
|
|
{ |
|
|
|
if (!(s->uncacheable & UNCACHEABLE_DEPENDENT)) |
|
|
|
{ |
|
|
|
// Select is dependent of outer select
|
|
|
|
@ -1802,10 +1804,12 @@ void st_select_lex::mark_as_dependent(st_select_lex *last, Item *dependency) |
|
|
|
sl->uncacheable|= UNCACHEABLE_UNITED; |
|
|
|
} |
|
|
|
} |
|
|
|
next_to_last= s; |
|
|
|
} |
|
|
|
is_correlated= TRUE; |
|
|
|
this->master_unit()->item->is_correlated= TRUE; |
|
|
|
if (dependency) |
|
|
|
this->master_unit()->item->refers_to.push_back(dependency); |
|
|
|
next_to_last->master_unit()->item->refers_to.push_back(dependency); |
|
|
|
} |
|
|
|
|
|
|
|
bool st_select_lex_node::set_braces(bool value) { return 1; } |
|
|
|
|