Commit ec16154a authored by unknown's avatar unknown

Merge bk-internal.mysql.com:/home/bk/mysql-5.0

into sergbook.mylan:/usr/home/serg/Abk/mysql-5.0
parents 621fa1cc c318656a
...@@ -939,3 +939,4 @@ vio/test-ssl ...@@ -939,3 +939,4 @@ vio/test-ssl
vio/test-sslclient vio/test-sslclient
vio/test-sslserver vio/test-sslserver
vio/viotest-ssl vio/viotest-ssl
gdbinit
...@@ -921,6 +921,8 @@ int decimal_round(decimal *from, decimal *to, int scale, decimal_round_mode mode ...@@ -921,6 +921,8 @@ int decimal_round(decimal *from, decimal *to, int scale, decimal_round_mode mode
*buf1-=DIG_BASE; *buf1-=DIG_BASE;
while (carry && --buf1 >= to->buf) while (carry && --buf1 >= to->buf)
ADD(*buf1, *buf1, 0, carry); ADD(*buf1, *buf1, 0, carry);
if (to->buf[0] > from->buf[0])
to->intg++;
if (unlikely(carry)) if (unlikely(carry))
{ {
/* shifting the number to create space for new digit */ /* shifting the number to create space for new digit */
...@@ -1150,6 +1152,8 @@ static int do_sub(decimal *from1, decimal *from2, decimal *to) ...@@ -1150,6 +1152,8 @@ static int do_sub(decimal *from1, decimal *from2, decimal *to)
buf1=start1+intg1+frac1; buf1=start1+intg1+frac1;
stop1=start1+intg1+frac2; stop1=start1+intg1+frac2;
buf2=start2+intg2+frac2; buf2=start2+intg2+frac2;
while (frac0-- > frac1)
*--buf0=0;
while (buf1 > stop1) while (buf1 > stop1)
*--buf0=*--buf1; *--buf0=*--buf1;
} }
...@@ -1158,6 +1162,8 @@ static int do_sub(decimal *from1, decimal *from2, decimal *to) ...@@ -1158,6 +1162,8 @@ static int do_sub(decimal *from1, decimal *from2, decimal *to)
buf1=start1+intg1+frac1; buf1=start1+intg1+frac1;
buf2=start2+intg2+frac2; buf2=start2+intg2+frac2;
stop2=start2+intg2+frac1; stop2=start2+intg2+frac1;
while (frac0-- > frac2)
*--buf0=0;
while (buf2 > stop2) while (buf2 > stop2)
{ {
SUB(*--buf0, 0, *--buf2, carry); SUB(*--buf0, 0, *--buf2, carry);
...@@ -1968,6 +1974,7 @@ main() ...@@ -1968,6 +1974,7 @@ main()
test_ds("-123.45", "-12345"); test_ds("-123.45", "-12345");
test_da("123.45", "-12345"); test_da("123.45", "-12345");
test_da("-123.45", "12345"); test_da("-123.45", "12345");
test_da("5", "-6.0");
printf("==== decimal_mul ====\n"); printf("==== decimal_mul ====\n");
test_dm("12", "10"); test_dm("12", "10");
...@@ -2059,6 +2066,9 @@ main() ...@@ -2059,6 +2066,9 @@ main()
test_ro("-15.1",0,CEILING); test_ro("-15.1",0,CEILING);
test_ro("15.1",0,FLOOR); test_ro("15.1",0,FLOOR);
test_ro("-15.1",0,FLOOR); test_ro("-15.1",0,FLOOR);
test_ro("999999999999999999999.999", 0, CEILING);
test_ro("-999999999999999999999.999", 0, FLOOR);
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment