mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Merge sunlight.local:/local_work/tmp_merge-5.0-opt-mysql
into sunlight.local:/local_work/tmp_merge-5.1-opt-mysql client/mysql.cc: Auto merged mysql-test/r/date_formats.result: Auto merged mysql-test/r/func_gconcat.result: Auto merged mysql-test/r/func_group.result: Auto merged mysql-test/r/func_str.result: Auto merged mysql-test/r/group_min_max.result: Auto merged BitKeeper/deleted/.del-make_win_src_distribution.sh~f80d8fca44e4e5f1: Auto merged BitKeeper/deleted/.del-mysqld.dsp~ffdbf2d234e23e56: Auto merged BitKeeper/deleted/.del-mysqld_ia64.dsp~7f8cf84d81ee04e2: Auto merged BitKeeper/deleted/.del-mysqldump.dsp~a8bd23547d3fc27e: Auto merged BitKeeper/deleted/.del-mysqldump_ia64.dsp~a2aabe898be35b31: Auto merged mysql-test/r/innodb.result: Auto merged mysql-test/r/innodb_mysql.result: Auto merged mysql-test/r/ps_7ndb.result: Auto merged mysql-test/r/type_ranges.result: Auto merged mysql-test/r/udf.result: Auto merged mysql-test/r/union.result: Auto merged mysql-test/r/view.result: Auto merged mysql-test/t/date_formats.test: Auto merged mysql-test/t/func_gconcat.test: Auto merged mysql-test/t/func_group.test: Auto merged mysql-test/t/group_min_max.test: Auto merged mysql-test/t/innodb.test: Auto merged mysql-test/t/innodb_mysql.test: Auto merged mysql-test/t/mysql.test: Auto merged mysql-test/t/select.test: Auto merged mysql-test/t/sp.test: Auto merged mysql-test/t/view.test: Auto merged sql/field.cc: Auto merged sql/item_cmpfunc.cc: Auto merged sql/item_cmpfunc.h: Auto merged sql/item_func.cc: Auto merged sql/item_func.h: Auto merged sql/item_strfunc.cc: Auto merged sql/item_subselect.cc: Auto merged sql/item_subselect.h: Auto merged sql/opt_range.h: Auto merged sql/sql_base.cc: Auto merged sql/sql_class.cc: Auto merged sql/sql_insert.cc: Auto merged sql/sql_parse.cc: Auto merged sql/sql_show.cc: Auto merged sql/sql_yacc.yy: Auto merged sql/time.cc: Auto merged storage/ndb/test/ndbapi/Makefile.am: Auto merged strings/decimal.c: Auto merged mysql-test/r/analyse.result: Manual merge mysql-test/r/bigint.result: Manual merge mysql-test/r/create.result: Manual merge mysql-test/r/information_schema.result: Manual merge mysql-test/r/ps_2myisam.result: Manual merge mysql-test/r/ps_3innodb.result: Manual merge mysql-test/r/ps_4heap.result: Manual merge mysql-test/r/ps_5merge.result: Manual merge mysql-test/r/ps_6bdb.result: Manual merge mysql-test/r/rpl_insert_id.result: Manual merge mysql-test/r/select.result: Manual merge mysql-test/r/sp.result: Manual merge mysql-test/r/subselect.result: Manual merge mysql-test/t/information_schema.test: Manual merge mysql-test/t/rpl_insert_id.test: Manual merge sql/field.h: Manual merge sql/item.cc: Manual merge sql/item.h: Manual merge sql/item_strfunc.h: Manual merge sql/item_sum.cc: Manual merge sql/mysql_priv.h: Manual merge sql/share/errmsg.txt: Manual merge sql/sql_class.h: Manual merge sql/sql_select.cc: Manual merge
This commit is contained in:
@ -171,6 +171,7 @@ static const dec1 frac_max[DIG_PER_DEC1-1]={
|
||||
do \
|
||||
{ \
|
||||
dec1 a=(from1)+(from2)+(carry); \
|
||||
DBUG_ASSERT((carry) <= 1); \
|
||||
if (((carry)= a >= DIG_BASE)) /* no division here! */ \
|
||||
a-=DIG_BASE; \
|
||||
(to)=a; \
|
||||
@ -179,7 +180,7 @@ static const dec1 frac_max[DIG_PER_DEC1-1]={
|
||||
#define ADD2(to, from1, from2, carry) \
|
||||
do \
|
||||
{ \
|
||||
dec1 a=(from1)+(from2)+(carry); \
|
||||
dec2 a=((dec2)(from1))+(from2)+(carry); \
|
||||
if (((carry)= a >= DIG_BASE)) \
|
||||
a-=DIG_BASE; \
|
||||
if (unlikely(a >= DIG_BASE)) \
|
||||
@ -187,7 +188,7 @@ static const dec1 frac_max[DIG_PER_DEC1-1]={
|
||||
a-=DIG_BASE; \
|
||||
carry++; \
|
||||
} \
|
||||
(to)=a; \
|
||||
(to)=(dec1) a; \
|
||||
} while(0)
|
||||
|
||||
#define SUB(to, from1, from2, carry) /* to=from1-from2 */ \
|
||||
@ -2004,7 +2005,13 @@ int decimal_mul(decimal_t *from1, decimal_t *from2, decimal_t *to)
|
||||
ADD2(*buf0, *buf0, lo, carry);
|
||||
carry+=hi;
|
||||
}
|
||||
for (; carry; buf0--)
|
||||
if (carry)
|
||||
{
|
||||
if (buf0 < to->buf)
|
||||
return E_DEC_OVERFLOW;
|
||||
ADD2(*buf0, *buf0, 0, carry);
|
||||
}
|
||||
for (buf0--; carry; buf0--)
|
||||
{
|
||||
if (buf0 < to->buf)
|
||||
return E_DEC_OVERFLOW;
|
||||
|
Reference in New Issue
Block a user