diff options
Diffstat (limited to 'sql/item_row.cc')
-rw-r--r-- | sql/item_row.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/sql/item_row.cc b/sql/item_row.cc index 289efe45300..8a020861fef 100644 --- a/sql/item_row.cc +++ b/sql/item_row.cc @@ -147,6 +147,18 @@ bool Item_row::walk(Item_processor processor, byte *arg) return (this->*processor)(arg); } +Item *Item_row::transform(Item_transformer transformer, byte *arg) +{ + for (uint i= 0; i < arg_count; i++) + { + Item *new_item= items[i]->transform(transformer, arg); + if (!new_item) + return 0; + items[i]= new_item; + } + return (this->*transformer)(arg); +} + void Item_row::bring_value() { for (uint i= 0; i < arg_count; i++) |