summaryrefslogtreecommitdiff
path: root/sql/item_subselect.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/item_subselect.cc')
-rw-r--r--sql/item_subselect.cc10
1 files changed, 8 insertions, 2 deletions
diff --git a/sql/item_subselect.cc b/sql/item_subselect.cc
index a8051ccd469..68f07c10fb7 100644
--- a/sql/item_subselect.cc
+++ b/sql/item_subselect.cc
@@ -673,11 +673,17 @@ bool Item_subselect::walk(Item_processor processor, bool walk_subquery,
if (lex->where && (lex->where)->walk(processor, walk_subquery, argument))
return 1;
+ for (TABLE_LIST *table= lex->table_list.first;
+ table;
+ table= table->next_local)
+ {
+ if (table->on_expr)
+ table->on_expr->walk(processor, walk_subquery, argument);
+ return 1;
+ }
if (lex->having && (lex->having)->walk(processor, walk_subquery,
argument))
return 1;
- /* TODO: why does this walk WHERE/HAVING but not ON expressions of outer joins? */
-
while ((item=li++))
{
if (item->walk(processor, walk_subquery, argument))