Commit 101d9189 authored by unknown's avatar unknown
Browse files

Merge mysql.com:/home/jimw/my/mysql-4.1-13344

into  mysql.com:/home/jimw/my/mysql-4.1-clean


mysql-test/r/cast.result:
  Auto merged
mysql-test/t/cast.test:
  Auto merged
sql/item.h:
  Auto merged
parents 9a3bce50 13fa84a7
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -264,3 +264,6 @@ cast(repeat('1',20) as signed)
-7335632962598440505
Warnings:
Warning	1105	Cast to signed converted positive out-of-range integer to it's negative complement
select cast(1.0e+300 as signed int);
cast(1.0e+300 as signed int)
9223372036854775807
+5 −0
Original line number Diff line number Diff line
@@ -147,4 +147,9 @@ select cast(concat('184467440','73709551615') as signed);
select cast(repeat('1',20) as unsigned);
select cast(repeat('1',20) as signed);

#
# Bug #13344: cast of large decimal to signed int not handled correctly
#
select cast(1.0e+300 as signed int);

# End of 4.1 tests
+8 −0
Original line number Diff line number Diff line
@@ -703,6 +703,14 @@ class Item_real :public Item_num
  longlong val_int()
  {
    DBUG_ASSERT(fixed == 1);
    if (value <= (double) LONGLONG_MIN)
    {
       return LONGLONG_MIN;
    }
    else if (value >= (double) (ulonglong) LONGLONG_MAX)
    {
      return LONGLONG_MAX;
    }
    return (longlong) (value+(value > 0 ? 0.5 : -0.5));
  }
  String *val_str(String*);