From 467ca505b5c5cb6f1512fc3425fd0f0b8620c099 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 17 Jun 2005 17:27:47 +0300 Subject: fixed printing of sum(distinct ) & avg(distinct ) & cast(... as decimal) (BUG#7015, BUG#11387) mysql-test/r/view.result: using sum(distinct ), cast(... as decimal) & avg(distinct ) in views mysql-test/t/view.test: using sum(distinct ), cast(... as decimal) & avg(distinct ) in views sql/item.h: Add a comment for Item::print sql/item_func.cc: Use functype(), not func_name() for item equvalence detection sql/item_func.h: Missed function typoes added Add a comment for Item_func::func_name() style fix sql/item_strfunc.cc: Use functype(), not func_name() for item equvalence detection sql/item_strfunc.h: Add missing func_name and func_type sql/item_sum.cc: Item_sum func_name report beggining of function till first argument sql/item_sum.h: Item_sum func_name report beggining of function till first argument sql/item_timefunc.cc: Use functype(), not func_name() for item equvalence detection sql/item_timefunc.h: Add missing func_name and func_type sql/item_uniq.h: Add missing func_name --- sql/item_sum.cc | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'sql/item_sum.cc') diff --git a/sql/item_sum.cc b/sql/item_sum.cc index f7a158ceb5a..76f94801b49 100644 --- a/sql/item_sum.cc +++ b/sql/item_sum.cc @@ -86,7 +86,6 @@ void Item_sum::make_field(Send_field *tmp_field) void Item_sum::print(String *str) { str->append(func_name()); - str->append('('); for (uint i=0 ; i < arg_count ; i++) { if (i) @@ -2425,13 +2424,6 @@ longlong Item_sum_count_distinct::val_int() } -void Item_sum_count_distinct::print(String *str) -{ - str->append("count(distinct ", 15); - args[0]->print(str); - str->append(')'); -} - /**************************************************************************** ** Functions to handle dynamic loadable aggregates ** Original source by: Alexis Mikhailov @@ -2466,6 +2458,20 @@ void Item_udf_sum::cleanup() } +void Item_udf_sum::print(String *str) +{ + str->append(func_name()); + str->append('('); + for (uint i=0 ; i < arg_count ; i++) + { + if (i) + str->append(','); + args[i]->print(str); + } + str->append(')'); +} + + Item *Item_sum_udf_float::copy_or_same(THD* thd) { return new (thd->mem_root) Item_sum_udf_float(thd, this); -- cgit v1.2.1