diff options
Diffstat (limited to 'sql/item_cmpfunc.cc')
-rw-r--r-- | sql/item_cmpfunc.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sql/item_cmpfunc.cc b/sql/item_cmpfunc.cc index 61c6b980551..7e99230723a 100644 --- a/sql/item_cmpfunc.cc +++ b/sql/item_cmpfunc.cc @@ -914,6 +914,8 @@ int Arg_comparator::compare_decimal() { if (set_null) owner->null_value= 0; + my_decimal_round_if_needed(E_DEC_FATAL_ERROR, val1, (*a)->decimals, 0); + my_decimal_round_if_needed(E_DEC_FATAL_ERROR, val2, (*b)->decimals, 0); return my_decimal_cmp(val1, val2); } } @@ -938,7 +940,9 @@ int Arg_comparator::compare_e_decimal() my_decimal *val2= (*b)->val_decimal(&decimal2); if ((*a)->null_value || (*b)->null_value) return MY_TEST((*a)->null_value && (*b)->null_value); - return MY_TEST(my_decimal_cmp(val1, val2) == 0); + my_decimal_round_if_needed(E_DEC_FATAL_ERROR, val1, (*a)->decimals, 0); + my_decimal_round_if_needed(E_DEC_FATAL_ERROR, val2, (*b)->decimals, 0); + return my_decimal_cmp(val1, val2) == 0; } |