diff options
author | Sergei Golubchik <sergii@pisem.net> | 2012-11-22 10:19:31 +0100 |
---|---|---|
committer | Sergei Golubchik <sergii@pisem.net> | 2012-11-22 10:19:31 +0100 |
commit | a48a91d90f07798deebe514d9d827fb719da7294 (patch) | |
tree | c438c045be1f3d8167b3746aa3ac87f848902aeb /sql/item_sum.cc | |
parent | 3a1fdc9e7fc65e29320b988f9a69c8acab168ff9 (diff) | |
parent | 13ba0dd286f3296bfbbd202fa76d47770734b472 (diff) | |
download | mariadb-git-a48a91d90f07798deebe514d9d827fb719da7294.tar.gz |
5.3->5.5 merge
Diffstat (limited to 'sql/item_sum.cc')
-rw-r--r-- | sql/item_sum.cc | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/sql/item_sum.cc b/sql/item_sum.cc index 0b21ba92558..b04fda55736 100644 --- a/sql/item_sum.cc +++ b/sql/item_sum.cc @@ -2510,9 +2510,8 @@ Item_sum_hybrid::min_max_update_int_field() void Item_sum_hybrid::min_max_update_decimal_field() { - /* TODO: optimize: do not get result_field in case of args[0] is NULL */ my_decimal old_val, nr_val; - const my_decimal *old_nr= result_field->val_decimal(&old_val); + const my_decimal *old_nr; const my_decimal *nr= args[0]->val_decimal(&nr_val); if (!args[0]->null_value) { @@ -2520,16 +2519,17 @@ Item_sum_hybrid::min_max_update_decimal_field() old_nr=nr; else { + old_nr= result_field->val_decimal(&old_val); bool res= my_decimal_cmp(old_nr, nr) > 0; /* (cmp_sign > 0 && res) || (!(cmp_sign > 0) && !res) */ if ((cmp_sign > 0) ^ (!res)) old_nr=nr; } result_field->set_notnull(); + result_field->store_decimal(old_nr); } else if (result_field->is_null(0)) result_field->set_null(); - result_field->store_decimal(old_nr); } |