diff options
Diffstat (limited to 'sql/item_subselect.h')
-rw-r--r-- | sql/item_subselect.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sql/item_subselect.h b/sql/item_subselect.h index 86c032dd1ce..cde51e58340 100644 --- a/sql/item_subselect.h +++ b/sql/item_subselect.h @@ -241,7 +241,8 @@ public: */ virtual void reset_value_registration() {} enum_parsing_place place() { return parsing_place; } - bool walk(Item_processor processor, bool walk_subquery, void *arg); + bool walk(Item_processor processor, bool walk_subquery, void *arg, + uint depth= 0); bool mark_as_eliminated_processor(void *arg); bool eliminate_subselect_processor(void *arg); bool enumerate_field_refs_processor(void *arg); @@ -753,10 +754,11 @@ public: DBUG_VOID_RETURN; } - bool walk(Item_processor processor, bool walk_subquery, void *arg) + bool walk(Item_processor processor, bool walk_subquery, void *arg, + uint depth= 0) { - return left_expr->walk(processor, walk_subquery, arg) || - Item_subselect::walk(processor, walk_subquery, arg); + return left_expr->walk(processor, walk_subquery, arg, depth+1) || + Item_subselect::walk(processor, walk_subquery, arg, depth+1); } bool exists2in_processor(void *opt_arg __attribute__((unused))) |