summaryrefslogtreecommitdiff
path: root/sql/item.h
diff options
context:
space:
mode:
Diffstat (limited to 'sql/item.h')
-rw-r--r--sql/item.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/sql/item.h b/sql/item.h
index 4b42db2aa9e..314882662ea 100644
--- a/sql/item.h
+++ b/sql/item.h
@@ -3275,6 +3275,16 @@ class Item_args
protected:
Item **args, *tmp_arg[2];
void set_arguments(List<Item> &list);
+ bool walk_args(Item_processor processor, bool walk_subquery, uchar *arg)
+ {
+ for (uint i= 0; i < arg_count; i++)
+ {
+ if (args[i]->walk(processor, walk_subquery, arg))
+ return true;
+ }
+ return false;
+ }
+ bool transform_args(Item_transformer transformer, uchar *arg);
public:
uint arg_count;
Item_args(void)
@@ -3417,6 +3427,12 @@ public:
:Item_result_field(thd, item), Item_args(thd, item) { }
Item_func_or_sum(List<Item> &list)
:Item_result_field(), Item_args(list) { }
+ bool walk(Item_processor processor, bool walk_subquery, uchar *arg)
+ {
+ if (walk_args(processor, walk_subquery, arg))
+ return true;
+ return (this->*processor)(arg);
+ }
/*
This method is used for debug purposes to print the name of an
item to the debug log. The second use of this method is as