You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ge...@apache.org on 2020/07/14 09:24:12 UTC

[incubator-iotdb] branch optimize_path updated: finished insert.

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

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


The following commit(s) were added to refs/heads/optimize_path by this push:
     new f6ffcf8  finished insert.
f6ffcf8 is described below

commit f6ffcf8542df30cda1e6b56e7cf435bcb9d2dd4d
Author: zhutianci <zh...@gmail.com>
AuthorDate: Tue Jul 14 17:23:47 2020 +0800

    finished insert.
---
 server/src/main/java/org/apache/iotdb/db/metadata/MManager.java   | 8 +++-----
 .../main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java   | 2 +-
 .../java/org/apache/iotdb/db/qp/physical/crud/InsertPlan.java     | 5 +++++
 .../java/org/apache/iotdb/db/qp/physical/crud/InsertRowPlan.java  | 1 -
 4 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java b/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
index aadb8fa..b810458 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
@@ -1938,13 +1938,13 @@ public class MManager {
    * Attention!!!  Only support insertPlan
    * @throws MetadataException
    */
-  public MeasurementSchema[] getSeriesSchemasAndReadLockDevice(String deviceId,
+  public MeasurementSchema[] getSeriesSchemasAndReadLockDevice(String deviceId, List<String> nodes,
       String[] measurementList, InsertPlan plan) throws MetadataException {
     MeasurementSchema[] schemas = new MeasurementSchema[measurementList.length];
 
     MNode deviceNode;
     // 1. get device node
-    deviceNode = getDeviceNodeWithAutoCreateAndReadLock(deviceId);
+    deviceNode = getDeviceNodeWithAutoCreateAndReadLock(deviceId, nodes);
 
     // 2. get schema of each measurement
     for (int i = 0; i < measurementList.length; i++) {
@@ -1957,12 +1957,10 @@ public class MManager {
               "Current deviceId[%s] does not contain measurement:%s", deviceId, measurementList[i]));
           }
 
-          // create it
-          Path path = new Path(deviceId, measurementList[i]);
           TSDataType dataType = getTypeInLoc(plan, i);
 
           createTimeseries(
-            path.getFullPath(),
+            deviceNode.getFullPath() + measurementList[i],
             dataType,
             getDefaultEncoding(dataType),
             TSFileDescriptor.getInstance().getConfig().getCompressor(),
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java b/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
index e6314ad..d80a464 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
@@ -850,7 +850,7 @@ public class PlanExecutor implements IPlanExecutor {
 
   protected MeasurementSchema[] getSeriesSchemas(InsertPlan insertPlan)
     throws MetadataException {
-    return mManager.getSeriesSchemasAndReadLockDevice(insertPlan.getDeviceId(), insertPlan.getMeasurements(), insertPlan);
+    return mManager.getSeriesSchemasAndReadLockDevice(insertPlan.getDeviceId(), insertPlan.getDeviceNodes(), insertPlan.getMeasurements(), insertPlan);
   }
 
   @Override
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertPlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertPlan.java
index 36a1174..9498c0b 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertPlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertPlan.java
@@ -30,6 +30,7 @@ import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
 abstract public class InsertPlan extends PhysicalPlan {
 
   protected String deviceId;
+  protected List<String> deviceNodes;
   protected String[] measurements;
   protected TSDataType[] dataTypes;
   protected MeasurementSchema[] schemas;
@@ -89,6 +90,10 @@ abstract public class InsertPlan extends PhysicalPlan {
     return deviceMNode;
   }
 
+  public List<String> getDeviceNodes() {
+    return deviceNodes;
+  }
+
   public void setDeviceMNode(MNode deviceMNode) {
     this.deviceMNode = deviceMNode;
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertRowPlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertRowPlan.java
index 9ce8574..f848648 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertRowPlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertRowPlan.java
@@ -52,7 +52,6 @@ public class InsertRowPlan extends InsertPlan {
 
   private long time;
   private Object[] values;
-  private List<String> deviceNodes;
 
   // if isNeedInferType is true, the values must be String[], so we could infer types from them
   // if values is object[], we could use the raw type of them, and we should set this to false