diff options
author | unknown <jimw@mysql.com> | 2005-09-22 15:59:13 -0700 |
---|---|---|
committer | unknown <jimw@mysql.com> | 2005-09-22 15:59:13 -0700 |
commit | 13fa84a7e2f25f69fcaf8ad5893ac6fe152d6ff8 (patch) | |
tree | d7153c4337a3eb84f2a213da38023db6748d08ec /sql | |
parent | 443b394fc31898b2903ab48b43dd20dc7826733e (diff) | |
download | mariadb-git-13fa84a7e2f25f69fcaf8ad5893ac6fe152d6ff8.tar.gz |
Fix CAST(1.0e+300 TO SIGNED). (Bug #13344)
mysql-test/r/cast.result:
Update results
mysql-test/t/cast.test:
Add regression test
sql/item.h:
Cap Item_real::val_int() to LONGLONG_MIN and LONGLONG_MAX.
Diffstat (limited to 'sql')
-rw-r--r-- | sql/item.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sql/item.h b/sql/item.h index e683cda5786..f55707cfc32 100644 --- a/sql/item.h +++ b/sql/item.h @@ -703,6 +703,14 @@ public: 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*); |