You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by yu...@apache.org on 2020/06/28 15:45:53 UTC

[incubator-iotdb] branch kyy updated: auto create

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

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


The following commit(s) were added to refs/heads/kyy by this push:
     new 34e20a1  auto create
34e20a1 is described below

commit 34e20a1dbdcd5314c03739946b7b2c2dba3edf3c
Author: Ring-k <yu...@hotmail.com>
AuthorDate: Sun Jun 28 23:45:23 2020 +0800

    auto create
---
 .../cluster/server/member/MetaGroupMember.java     | 28 ++++++++++++++--------
 1 file changed, 18 insertions(+), 10 deletions(-)

diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/MetaGroupMember.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/MetaGroupMember.java
index 0fb8c76..55cb07d 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/MetaGroupMember.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/MetaGroupMember.java
@@ -1558,10 +1558,15 @@ public class MetaGroupMember extends RaftMember implements TSMetaService.AsyncIf
     }
     // the storage group is not found locally
     if (planGroupMap == null || planGroupMap.isEmpty()) {
-      if (plan instanceof InsertPlan && ClusterDescriptor.getInstance().getConfig()
-          .isEnableAutoCreateSchema()) {
+      if ((plan instanceof InsertPlan || plan instanceof CreateTimeSeriesPlan)
+          && ClusterDescriptor.getInstance().getConfig().isEnableAutoCreateSchema()) {
         // try to set storage group
-        String deviceId = ((InsertPlan) plan).getDeviceId();
+        String deviceId;
+        if(plan instanceof InsertPlan){
+          deviceId = ((InsertPlan) plan).getDeviceId();
+        }else{
+          deviceId = ((CreateTimeSeriesPlan)plan).getPath().toString();
+        }
         try {
           String storageGroupName = MetaUtils
               .getStorageGroupNameByLevel(deviceId, IoTDBDescriptor.getInstance()
@@ -1577,16 +1582,19 @@ public class MetaGroupMember extends RaftMember implements TSMetaService.AsyncIf
                     setStorageGroupResult.getCode(), storageGroupName)
             );
           }
-          // try to create timeseries
-          boolean isAutoCreateTimeseriesSuccess = autoCreateTimeseries((InsertPlan) plan);
-          if (!isAutoCreateTimeseriesSuccess) {
-            throw new MetadataException(
-                String.format("Failed to create timeseries from InsertPlan automatically.")
-            );
+          if(plan instanceof InsertPlan){
+            // try to create timeseries
+            boolean isAutoCreateTimeseriesSuccess = autoCreateTimeseries((InsertPlan) plan);
+            if (!isAutoCreateTimeseriesSuccess) {
+              throw new MetadataException(
+                  String.format("Failed to create timeseries from InsertPlan automatically.")
+              );
+            }
           }
           return executeNonQuery(plan);
         } catch (MetadataException e) {
-          logger.error(String.format("Failed to set storage group or create timeseries, because %s", e));
+          logger.error(
+              String.format("Failed to set storage group or create timeseries, because %s", e));
         }
       }
       logger.error("{}: Cannot found storage groups for {}", name, plan);