1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Bug #8663 (cant use bigint as input to CAST)

decimal->ulong conversion fixed to assign max possible ULONG if decimal
is bigger
Item_func_unsigned now handles DECIMAL parameter separately as we can't
rely on decimal::val_int result here.


mysql-test/r/type_newdecimal.result:
  result fixed
mysql-test/t/type_newdecimal.test:
  testcase
sql/item_func.cc:
  DECIMAL_RESULT should be handled separately here as it's
  always signed.
strings/decimal.c:
  here we assign max possible ULONG if the decimal value is bigger
This commit is contained in:
unknown
2006-10-30 09:52:50 +04:00
parent ab13365536
commit f00e6bd75d
4 changed files with 20 additions and 2 deletions

View File

@ -1036,7 +1036,7 @@ int decimal2ulonglong(decimal_t *from, ulonglong *to)
x=x*DIG_BASE + *buf++;
if (unlikely(y > ((ulonglong) ULONGLONG_MAX/DIG_BASE) || x < y))
{
*to=y;
*to=ULONGLONG_MAX;
return E_DEC_OVERFLOW;
}
}