mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
Fixed bug #28980: the result of ROUND(<decimal expr>,<int column>)
was erroneously converted to double, while the result of ROUND(<decimal expr>, <int literal>) was preserved as decimal. As a result of such a conversion the value of ROUND(D,A) could differ from the value of ROUND(D,val(A)) if D was a decimal expression. Now the result of the ROUND function is never converted to double if the first argument is decimal. mysql-test/r/type_decimal.result: Added a test case for bug #28980. mysql-test/t/type_decimal.test: Added a test case for bug #28980.
This commit is contained in:
@ -1957,7 +1957,13 @@ void Item_func_round::fix_length_and_dec()
|
||||
{
|
||||
max_length= args[0]->max_length;
|
||||
decimals= args[0]->decimals;
|
||||
hybrid_type= REAL_RESULT;
|
||||
if (args[0]->result_type() == DECIMAL_RESULT)
|
||||
{
|
||||
max_length++;
|
||||
hybrid_type= DECIMAL_RESULT;
|
||||
}
|
||||
else
|
||||
hybrid_type= REAL_RESULT;
|
||||
return;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user