This is an automated email from the ASF dual-hosted git repository. haonan pushed a commit to branch NaNBug11 in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 363629891dced859fb16e18655d2c96ae9c5aebf 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 817c6d1..1d49aeb 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 @@ -179,7 +179,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 8b02238..7f3b7ab 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 @@ -178,7 +178,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));
