diff options
author | Alexander Barkov <bar@mariadb.com> | 2020-08-03 10:53:06 +0400 |
---|---|---|
committer | Alexander Barkov <bar@mariadb.com> | 2020-08-03 10:53:06 +0400 |
commit | 9840bb21ef683afd59a30a79ebc5bd5ad33a7c1a (patch) | |
tree | d3a79d95550a05c8381855adaa45bc5f2941619d /sql/item_cmpfunc.cc | |
parent | 97f7bfcebcc17df337bd97c0a9535a906547016d (diff) | |
download | mariadb-git-9840bb21ef683afd59a30a79ebc5bd5ad33a7c1a.tar.gz |
MDEV-23366 ROUND(18446744073709551615,rand()*0) returns a wrong result
Changing that in case of *INT and hex hybrid input:
- ROUND(x,NULL) creates a column with the same type as x.
The old code created a DOUBLE column, which was not relevant at all.
This change simplifies the code a lot.
- ROUND(x,non_constant) creates a column of the INT, BIGINT or DECIMAL
data type (depending on the exact type of x).
The old code created a column of the DOUBLE data type,
which lead to precision loss. Hence MDEV-23366.
- ROUND(bigint_30,negative_constant) creates a column of the DECIMAL(30,0)
data type. The old code created DECIMAL(29,0), which looked strange:
the data type promoted to a higher one, but max length reduced.
Now the length attribute is preserved.
Diffstat (limited to 'sql/item_cmpfunc.cc')
0 files changed, 0 insertions, 0 deletions