Attila Jeges has uploaded a new patch set (#2).

Change subject: IMPALA-1731,IMPALA-3868: Float values are not parsed correctly
......................................................................

IMPALA-1731,IMPALA-3868: Float values are not parsed correctly

Fixed StringToFloatInternal() not to parse strings like "1.23inf"
with leading garbage as Infinity anymore. These strings are now
rejected with PARSE_FAILURE.
Only strings with "inf" prefix are interpreted as infinity. Note
that this also means that strings like “inf456” are parsed as
infinity too. This behavior is kept for backward compatibility
reasons.

"NaN" values are handled similarly: only strings with "nan" prefix
are accepted as NaN.

Other changes:
- StringToFloatInternal() was cleaned up a bit. Parsing inf and
NaN strings was moved out of the main loop.
- Use std::numeric_limits<T>::infinity() instead of INFINITY macro
and std::numeric_limits<T>::quiet_NaN() instead of NAN macro.
- Fixed another minor bug: multiple dots are ignored when parsing
float values (e.g. "2.1..6" is interpreted as 2.16).
- New BE and E2E tests were added.

Change-Id: I9e17d0f051b300a22a520ce34e276c2d4460d35e
---
M be/src/exprs/expr-test.cc
M be/src/util/string-parser-test.cc
M be/src/util/string-parser.h
M testdata/workloads/functional-query/queries/QueryTest/exprs.test
4 files changed, 201 insertions(+), 41 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/Impala refs/changes/22/3622/2
-- 
To view, visit http://gerrit.cloudera.org:8080/3622
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I9e17d0f051b300a22a520ce34e276c2d4460d35e
Gerrit-PatchSet: 2
Gerrit-Project: Impala
Gerrit-Branch: cdh5-trunk
Gerrit-Owner: Attila Jeges <[email protected]>
Gerrit-Reviewer: Attila Jeges <[email protected]>
Gerrit-Reviewer: Jim Apple <[email protected]>
Gerrit-Reviewer: Lars Volker <[email protected]>
Gerrit-Reviewer: Michael Ho <[email protected]>

Reply via email to