mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 08:40:50 +00:00
Added tests
This commit is contained in:
parent
7c748b6140
commit
7a72a765c2
@ -331,12 +331,24 @@ ReturnType readIntTextImpl(T & x, ReadBuffer & buf)
|
||||
|
||||
if (buf.count() - initial_pos + 1 >= std::numeric_limits<T>::max_digits10)
|
||||
{
|
||||
T signed_res = negative ? -res : res;
|
||||
if (common::mulOverflow<T>(signed_res, 10, signed_res) || (negative ? common::subOverflow<T>(signed_res, (*buf.position() - '0'), signed_res) :
|
||||
common::addOverflow<T>(signed_res, (*buf.position() - '0'), signed_res)))
|
||||
return ReturnType(false);
|
||||
if (negative)
|
||||
{
|
||||
T signed_res = -res;
|
||||
if (common::mulOverflow<T>(signed_res, 10, signed_res) ||
|
||||
common::subOverflow<T>(signed_res, (*buf.position() - '0'), signed_res))
|
||||
return ReturnType(false);
|
||||
|
||||
res = negative ? -signed_res : signed_res;
|
||||
res = -signed_res;
|
||||
}
|
||||
else
|
||||
{
|
||||
T signed_res = res;
|
||||
if (common::mulOverflow<T>(signed_res, 10, signed_res)
|
||||
|| common::addOverflow<T>(signed_res, (*buf.position() - '0'), signed_res))
|
||||
return ReturnType(false);
|
||||
|
||||
res = signed_res;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,2 @@
|
||||
-2147483648
|
||||
-2147483648
|
2
tests/queries/0_stateless/2020_cast_integer_overflow.sql
Normal file
2
tests/queries/0_stateless/2020_cast_integer_overflow.sql
Normal file
@ -0,0 +1,2 @@
|
||||
SELECT toInt32('-2147483648');
|
||||
SELECT toInt32OrNull('-2147483648');
|
Loading…
Reference in New Issue
Block a user