mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
Merge abotchkov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into mysql.com:/home/hf/work/27984/my51-27984 BitKeeper/deleted/.del-ps_6bdb.result: Auto merged
This commit is contained in:
@@ -1478,6 +1478,9 @@ Error 1264 Out of range value for column 'cast(a as DECIMAL(3,2))' at row 1
|
||||
create table t1 (s varchar(100));
|
||||
insert into t1 values (0.00000000010000000000000000364321973154977415791655470655996396089904010295867919921875);
|
||||
drop table t1;
|
||||
SELECT 1.000000000000 * 99.999999999998 / 100 a,1.000000000000 * (99.999999999998 / 100) b;
|
||||
a b
|
||||
0.9999999999999800000000000000 0.9999999999999800000000000000
|
||||
End of 5.0 tests
|
||||
select cast(143.481 as decimal(4,1));
|
||||
cast(143.481 as decimal(4,1))
|
||||
|
||||
@@ -1167,6 +1167,11 @@ create table t1 (s varchar(100));
|
||||
insert into t1 values (0.00000000010000000000000000364321973154977415791655470655996396089904010295867919921875);
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #27984 Long Decimal Maths produces truncated results
|
||||
#
|
||||
|
||||
SELECT 1.000000000000 * 99.999999999998 / 100 a,1.000000000000 * (99.999999999998 / 100) b;
|
||||
--echo End of 5.0 tests
|
||||
|
||||
#
|
||||
|
||||
@@ -1523,9 +1523,10 @@ decimal_round(decimal_t *from, decimal_t *to, int scale,
|
||||
dec1 *p0= buf0+intg0+max(frac1, frac0);
|
||||
dec1 *p1= buf1+intg1+max(frac1, frac0);
|
||||
|
||||
to->buf[0]= 0;
|
||||
while (buf0 < p0)
|
||||
*(--p1) = *(--p0);
|
||||
if (unlikely(intg1 > intg0))
|
||||
to->buf[0]= 0;
|
||||
|
||||
intg0= intg1;
|
||||
buf0=to->buf;
|
||||
|
||||
Reference in New Issue
Block a user