1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-01 03:47:19 +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:
unknown
2006-05-18 10:34:01 -07:00
parent 7418311747
commit 573d9e47ab
3 changed files with 13 additions and 1 deletions

View File

@ -1046,4 +1046,10 @@ cast(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))
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

View File

@ -698,4 +698,10 @@ select cast(rtrim(' 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));
#
# Bug #13975: "same string" + 0 has 2 different results
#
select conv("18383815659218730760",10,10) + 0;
select "18383815659218730760" + 0;
--echo End of 5.0 tests

View File

@ -542,7 +542,7 @@ public:
void fix_length_and_dec()
{
collation.set(default_charset());
decimals=0; max_length=64;
max_length= 64;
}
};