mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-22 01:30:51 +00:00
Better #1665
This commit is contained in:
parent
21a5ace37c
commit
460cba0e9d
@ -287,15 +287,18 @@ ReturnType readFloatTextFastImpl(T & x, ReadBuffer & in)
|
||||
|
||||
int read_digits = in.count() - count_after_sign;
|
||||
|
||||
int before_point_additional_exponent = 0;
|
||||
if (read_digits > significant_digits)
|
||||
before_point_additional_exponent = read_digits - significant_digits;
|
||||
if (unlikely(read_digits > significant_digits))
|
||||
{
|
||||
int before_point_additional_exponent = read_digits - significant_digits;
|
||||
x = shift10(before_point, before_point_additional_exponent);
|
||||
}
|
||||
else
|
||||
{
|
||||
x = before_point;
|
||||
|
||||
/// Shortcut for the common case when there is an integer that fit in Int64.
|
||||
if (read_digits && (in.eof() || *in.position() < '.'))
|
||||
{
|
||||
x = before_point;
|
||||
if (negative)
|
||||
x = -x;
|
||||
return ReturnType(true);
|
||||
@ -318,11 +321,6 @@ ReturnType readFloatTextFastImpl(T & x, ReadBuffer & in)
|
||||
exponent = -exponent;
|
||||
}
|
||||
|
||||
if (unlikely(before_point_additional_exponent))
|
||||
x = shift10(before_point, before_point_additional_exponent);
|
||||
else
|
||||
x = before_point;
|
||||
|
||||
if (after_point)
|
||||
x += shift10(after_point, after_point_exponent);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user