diff options
Diffstat (limited to 'sql/item_func.cc')
-rw-r--r-- | sql/item_func.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/sql/item_func.cc b/sql/item_func.cc index b73436afbcf..723585be0b1 100644 --- a/sql/item_func.cc +++ b/sql/item_func.cc @@ -864,6 +864,17 @@ longlong Item_func_field::val_int() return 0; } +void Item_func_field::split_sum_func(List<Item> &fields) +{ + if (item->with_sum_func && item->type() != SUM_FUNC_ITEM) + item->split_sum_func(fields); + else if (item->used_tables() || item->type() == SUM_FUNC_ITEM) + { + fields.push_front(item); + item= new Item_ref((Item**) fields.head_ref(), 0, item->name); + } + Item_func::split_sum_func(fields); +} longlong Item_func_ascii::val_int() { |