This is an automated email from the ASF dual-hosted git repository. haonan pushed a commit to branch NaNBug in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 89bebc337c40503b55512d2b9009eda557dd7c0c Author: HTHou <[email protected]> AuthorDate: Thu Feb 18 16:23:44 2021 +0800 [ISSUE-2687] fix insert NaN bug --- .../main/java/org/apache/iotdb/db/utils/datastructure/DoubleTVList.java | 2 +- .../main/java/org/apache/iotdb/db/utils/datastructure/FloatTVList.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/server/src/main/java/org/apache/iotdb/db/utils/datastructure/DoubleTVList.java b/server/src/main/java/org/apache/iotdb/db/utils/datastructure/DoubleTVList.java index 07b249d..e7abccf 100644 --- a/server/src/main/java/org/apache/iotdb/db/utils/datastructure/DoubleTVList.java +++ b/server/src/main/java/org/apache/iotdb/db/utils/datastructure/DoubleTVList.java @@ -183,7 +183,7 @@ public class DoubleTVList extends TVList { protected TimeValuePair getTimeValuePair(int index, long time, Integer floatPrecision, TSEncoding encoding) { double value = getDouble(index); - if (encoding == TSEncoding.RLE || encoding == TSEncoding.TS_2DIFF) { + if (value != Double.NaN && (encoding == TSEncoding.RLE || encoding == TSEncoding.TS_2DIFF)) { value = MathUtils.roundWithGivenPrecision(value, floatPrecision); } return new TimeValuePair(time, TsPrimitiveType.getByType(TSDataType.DOUBLE, value)); diff --git a/server/src/main/java/org/apache/iotdb/db/utils/datastructure/FloatTVList.java b/server/src/main/java/org/apache/iotdb/db/utils/datastructure/FloatTVList.java index 7757a71..4c5efdbb 100644 --- a/server/src/main/java/org/apache/iotdb/db/utils/datastructure/FloatTVList.java +++ b/server/src/main/java/org/apache/iotdb/db/utils/datastructure/FloatTVList.java @@ -182,7 +182,7 @@ public class FloatTVList extends TVList { protected TimeValuePair getTimeValuePair(int index, long time, Integer floatPrecision, TSEncoding encoding) { float value = getFloat(index); - if (encoding == TSEncoding.RLE || encoding == TSEncoding.TS_2DIFF) { + if (value != Float.NaN && (encoding == TSEncoding.RLE || encoding == TSEncoding.TS_2DIFF)) { value = MathUtils.roundWithGivenPrecision(value, floatPrecision); } return new TimeValuePair(time, TsPrimitiveType.getByType(TSDataType.FLOAT, value));
