mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
Bug #13975: "same string" + 0 has 2 different results
The 'decimals' member of Item_func was being improperly initialized, which resulted in improper results when handling large numeric values. mysql-test/r/func_str.result: Add test results mysql-test/t/func_str.test: Add new regression test sql/item_strfunc.h: Remove unnecessary reset of decimals in Item_func_conv::fix_length_and_dec().
This commit is contained in:
@@ -1046,4 +1046,10 @@ cast(ltrim(' 20.06 ') as decimal(19,2))
|
|||||||
select cast(rtrim(ltrim(' 20.06 ')) as decimal(19,2));
|
select cast(rtrim(ltrim(' 20.06 ')) as decimal(19,2));
|
||||||
cast(rtrim(ltrim(' 20.06 ')) as decimal(19,2))
|
cast(rtrim(ltrim(' 20.06 ')) as decimal(19,2))
|
||||||
20.06
|
20.06
|
||||||
|
select conv("18383815659218730760",10,10) + 0;
|
||||||
|
conv("18383815659218730760",10,10) + 0
|
||||||
|
1.8383815659219e+19
|
||||||
|
select "18383815659218730760" + 0;
|
||||||
|
"18383815659218730760" + 0
|
||||||
|
1.8383815659219e+19
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
|
@@ -698,4 +698,10 @@ select cast(rtrim(' 20.06 ') as decimal(19,2));
|
|||||||
select cast(ltrim(' 20.06 ') as decimal(19,2));
|
select cast(ltrim(' 20.06 ') as decimal(19,2));
|
||||||
select cast(rtrim(ltrim(' 20.06 ')) as decimal(19,2));
|
select cast(rtrim(ltrim(' 20.06 ')) as decimal(19,2));
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #13975: "same string" + 0 has 2 different results
|
||||||
|
#
|
||||||
|
select conv("18383815659218730760",10,10) + 0;
|
||||||
|
select "18383815659218730760" + 0;
|
||||||
|
|
||||||
--echo End of 5.0 tests
|
--echo End of 5.0 tests
|
||||||
|
@@ -542,7 +542,7 @@ public:
|
|||||||
void fix_length_and_dec()
|
void fix_length_and_dec()
|
||||||
{
|
{
|
||||||
collation.set(default_charset());
|
collation.set(default_charset());
|
||||||
decimals=0; max_length=64;
|
max_length= 64;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user