summaryrefslogtreecommitdiff
path: root/sql/item_row.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/item_row.cc')
-rw-r--r--sql/item_row.cc12
1 files changed, 12 insertions, 0 deletions
diff --git a/sql/item_row.cc b/sql/item_row.cc
index 89b38c8a753..d7afe9ad5f0 100644
--- a/sql/item_row.cc
+++ b/sql/item_row.cc
@@ -140,6 +140,18 @@ bool Item_row::walk(Item_processor processor, byte *arg)
return (this->*processor)(arg);
}
+Item *Item_row::traverse(Item_calculator calculator, byte *arg)
+{
+ for (uint i= 0; i < arg_count; i++)
+ {
+ Item *new_item= items[i]->traverse(calculator, arg);
+ if (!new_item)
+ return 0;
+ items[i]= new_item;
+ }
+ return (this->*calculator)(arg);
+}
+
void Item_row::bring_value()
{
for (uint i= 0; i < arg_count; i++)