Commit 4ac1e986 authored by holyfoot/hf@mysql.com/hfmain.(none)'s avatar holyfoot/hf@mysql.com/hfmain.(none)
Browse files

Merge abotchkov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt

into  mysql.com:/home/hf/work/8663/my50-8663
parents 364014e4 28eddbe1
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -352,3 +352,13 @@ select c1 mod 50 as result from t1;
result
6
drop table t1;
select cast(19999999999999999999 as signed);
cast(19999999999999999999 as signed)
9223372036854775807
Warnings:
Error	1292	Truncated incorrect DECIMAL value: ''
select cast(-19999999999999999999 as signed);
cast(-19999999999999999999 as signed)
-9223372036854775808
Warnings:
Error	1292	Truncated incorrect DECIMAL value: ''
+6 −0
Original line number Diff line number Diff line
@@ -288,3 +288,9 @@ insert into t1 values (10000002383263201056);
select c1 mod 50 as result from t1;
drop table t1;

#
# Bug #8663 cant use bgint unsigned as input to cast
#

select cast(19999999999999999999 as signed);
select cast(-19999999999999999999 as signed);
+5 −1
Original line number Diff line number Diff line
@@ -1083,7 +1083,11 @@ int decimal2longlong(decimal_t *from, longlong *to)
    x=x*DIG_BASE - *buf++;
    if (unlikely(y < (LONGLONG_MIN/DIG_BASE) || x > y))
    {
      *to= from->sign ? y : -y;
      /*
        the decimal is bigger than any possible integer
        return border integer depending on the sign
      */
      *to= from->sign ? LONGLONG_MIN : LONGLONG_MAX;
      return E_DEC_OVERFLOW;
    }
  }