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 2019/11/07 08:13:17 UTC

[incubator-iotdb] 01/01: fix auto create bool type

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

qiaojialin pushed a commit to branch fix_auto_create_bool
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git

commit 2afd9a17c1bfded1cc4775b9d9e0abf0fb58376f
Author: qiaojialin <64...@qq.com>
AuthorDate: Thu Nov 7 16:12:54 2019 +0800

    fix auto create bool type
---
 server/src/assembly/resources/conf/iotdb-engine.properties     |  2 +-
 .../java/org/apache/iotdb/db/utils/TypeInferenceUtils.java     | 10 ++++++++--
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/server/src/assembly/resources/conf/iotdb-engine.properties b/server/src/assembly/resources/conf/iotdb-engine.properties
index 3d45d57..44d69fe 100644
--- a/server/src/assembly/resources/conf/iotdb-engine.properties
+++ b/server/src/assembly/resources/conf/iotdb-engine.properties
@@ -330,7 +330,7 @@ watermark_method=GroupBasedLSBMethod(embed_row_cycle=2,embed_lsb_num=5)
 ####################
 
 # Whether creating schema automatically is enabled
-enable_auto_create_schema=false
+enable_auto_create_schema=true
 
 # Storage group level when creating schema automatically is enabled
 # e.g. root.sg0.d1.s2
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 934bc8c..63c79a3 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
@@ -19,6 +19,7 @@
 
 package org.apache.iotdb.db.utils;
 
+import org.apache.iotdb.db.qp.constant.SQLConstant;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 public class TypeInferenceUtils {
@@ -27,7 +28,7 @@ public class TypeInferenceUtils {
 
   }
 
-  public static boolean isNumber(String s) {
+  static boolean isNumber(String s) {
     try {
       Double.parseDouble(s);
     } catch (NumberFormatException e) {
@@ -36,11 +37,16 @@ public class TypeInferenceUtils {
     return true;
   }
 
+  private static boolean isBoolean(String s) {
+    return s.equalsIgnoreCase(SQLConstant.BOOLEN_TRUE) || s
+        .equalsIgnoreCase(SQLConstant.BOOLEN_FALSE);
+  }
+
   /**
    * Get predicted DataType of the given value
    */
   public static TSDataType getPredictedDataType(Object value) {
-    if (value instanceof Boolean) {
+    if (value instanceof Boolean || (value instanceof String && isBoolean((String) value))) {
       return TSDataType.BOOLEAN;
     } else if (value instanceof Number || (value instanceof String && isNumber((String) value))) {
       String v = String.valueOf(value);