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]>
