1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

Fix for bug #24558: Increasing decimal column length causes data loss

Altering to a decimal field we get double value then store it 
that may cause data loss. 
Fix: use store_decimal() instead.



mysql-test/r/type_newdecimal.result:
  Fix for bug #24558: Increasing decimal column length causes data loss
    - test result.
mysql-test/t/type_newdecimal.test:
  Fix for bug #24558: Increasing decimal column length causes data loss
    - test case.
sql/field_conv.cc:
  Fix for bug #24558: Increasing decimal column length causes data loss
    - if target field's result type is DECIMAL_RESULT
      use store_decimal(val_decimal()) in order not to loss data.
This commit is contained in:
unknown
2007-03-15 12:06:06 +04:00
parent d6bd171fd2
commit 9e5691cb33
3 changed files with 28 additions and 0 deletions

View File

@ -1423,3 +1423,11 @@ cast(19999999999999999999 as unsigned)
18446744073709551615
Warnings:
Error 1292 Truncated incorrect DECIMAL value: ''
create table t1(a decimal(18));
insert into t1 values(123456789012345678);
alter table t1 modify column a decimal(19);
select * from t1;
a
123456789012345678
drop table t1;
End of 5.0 tests

View File

@ -1120,3 +1120,14 @@ drop table t1;
#
select cast(19999999999999999999 as unsigned);
#
# Bug #24558: Increasing decimal column length causes data loss
#
create table t1(a decimal(18));
insert into t1 values(123456789012345678);
alter table t1 modify column a decimal(19);
select * from t1;
drop table t1;
--echo End of 5.0 tests