diff options
author | Alexey Kopytov <Alexey.Kopytov@Sun.com> | 2009-07-03 14:36:04 +0400 |
---|---|---|
committer | Alexey Kopytov <Alexey.Kopytov@Sun.com> | 2009-07-03 14:36:04 +0400 |
commit | 2d4df13ef28f4d5f0fbb67d570bfce9c1ebe1881 (patch) | |
tree | 06e2ea011ccd6c53fc3aca4b2248b33e484509e3 /sql/item_sum.cc | |
parent | e2ac8c07bdd2e58f5f7b4919a76a0d1881f3ed5e (diff) | |
parent | 096c12b2c42b83d879314276fe6471edf8c61fd0 (diff) | |
download | mariadb-git-2d4df13ef28f4d5f0fbb67d570bfce9c1ebe1881.tar.gz |
Manual merge.
Diffstat (limited to 'sql/item_sum.cc')
-rw-r--r-- | sql/item_sum.cc | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/sql/item_sum.cc b/sql/item_sum.cc index 759a53c3c5e..46a58351872 100644 --- a/sql/item_sum.cc +++ b/sql/item_sum.cc @@ -798,8 +798,9 @@ void Item_sum_sum::fix_length_and_dec() { /* SUM result can't be longer than length(arg) + length(MAX_ROWS) */ int precision= args[0]->decimal_precision() + DECIMAL_LONGLONG_DIGITS; - max_length= my_decimal_precision_to_length(precision, decimals, - unsigned_flag); + max_length= my_decimal_precision_to_length_no_truncation(precision, + decimals, + unsigned_flag); curr_dec_buff= 0; hybrid_type= DECIMAL_RESULT; my_decimal_set_zero(dec_buffs); @@ -1233,8 +1234,9 @@ void Item_sum_avg::fix_length_and_dec() { int precision= args[0]->decimal_precision() + prec_increment; decimals= min(args[0]->decimals + prec_increment, DECIMAL_MAX_SCALE); - max_length= my_decimal_precision_to_length(precision, decimals, - unsigned_flag); + max_length= my_decimal_precision_to_length_no_truncation(precision, + decimals, + unsigned_flag); f_precision= min(precision+DECIMAL_LONGLONG_DIGITS, DECIMAL_MAX_PRECISION); f_scale= args[0]->decimals; dec_bin_size= my_decimal_get_binary_size(f_precision, f_scale); @@ -1439,8 +1441,9 @@ void Item_sum_variance::fix_length_and_dec() { int precision= args[0]->decimal_precision()*2 + prec_increment; decimals= min(args[0]->decimals + prec_increment, DECIMAL_MAX_SCALE); - max_length= my_decimal_precision_to_length(precision, decimals, - unsigned_flag); + max_length= my_decimal_precision_to_length_no_truncation(precision, + decimals, + unsigned_flag); break; } |