You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2022/11/02 23:56:25 UTC

[iotdb] branch rel/0.13 updated: [To rel/0.13] Fix String number infer bug (#7886)

This is an automated email from the ASF dual-hosted git repository.

qiaojialin pushed a commit to branch rel/0.13
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/rel/0.13 by this push:
     new 6038a25312 [To rel/0.13] Fix String number infer bug (#7886)
6038a25312 is described below

commit 6038a25312098d98255822cc12d62a9ead80906f
Author: Haonan <hh...@outlook.com>
AuthorDate: Thu Nov 3 07:56:18 2022 +0800

    [To rel/0.13] Fix String number infer bug (#7886)
---
 .../src/main/java/org/apache/iotdb/db/utils/TypeInferenceUtils.java | 6 +++++-
 .../test/java/org/apache/iotdb/db/utils/TypeInferenceUtilsTest.java | 6 ++++--
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/utils/TypeInferenceUtils.java b/server/src/main/java/org/apache/iotdb/db/utils/TypeInferenceUtils.java
index ecd646ca6e..c64b43a139 100644
--- a/server/src/main/java/org/apache/iotdb/db/utils/TypeInferenceUtils.java
+++ b/server/src/main/java/org/apache/iotdb/db/utils/TypeInferenceUtils.java
@@ -63,7 +63,11 @@ public class TypeInferenceUtils {
   }
 
   private static boolean isConvertFloatPrecisionLack(String s) {
-    return Long.parseLong(s) > (2 << 24);
+    try {
+      return Long.parseLong(s) > (2 << 24);
+    } catch (NumberFormatException e) {
+      return true;
+    }
   }
 
   /** Get predicted DataType of the given value */
diff --git a/server/src/test/java/org/apache/iotdb/db/utils/TypeInferenceUtilsTest.java b/server/src/test/java/org/apache/iotdb/db/utils/TypeInferenceUtilsTest.java
index 9267cd9b0e..483cf78dd3 100644
--- a/server/src/test/java/org/apache/iotdb/db/utils/TypeInferenceUtilsTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/utils/TypeInferenceUtilsTest.java
@@ -72,7 +72,8 @@ public class TypeInferenceUtilsTest {
       "9999999999999999",
       "true",
       "77123 ",
-      " 7112324 "
+      " 7112324 ",
+      "271840880000000000000000"
     };
     TSDataType[] encodings = {
       IoTDBDescriptor.getInstance().getConfig().getIntegerStringInferType(),
@@ -85,7 +86,8 @@ public class TypeInferenceUtilsTest {
       IoTDBDescriptor.getInstance().getConfig().getLongStringInferType(),
       IoTDBDescriptor.getInstance().getConfig().getBooleanStringInferType(),
       IoTDBDescriptor.getInstance().getConfig().getIntegerStringInferType(),
-      IoTDBDescriptor.getInstance().getConfig().getIntegerStringInferType()
+      IoTDBDescriptor.getInstance().getConfig().getIntegerStringInferType(),
+      IoTDBDescriptor.getInstance().getConfig().getLongStringInferType()
     };
 
     for (int i = 0; i < values.length; i++) {