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

xingtanzjr pushed a commit to branch fast_write_test_0423
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/fast_write_test_0423 by this 
push:
     new 3034adf363 add visit method for FastInsertRow
3034adf363 is described below

commit 3034adf363635c48c9a13335ac755ff5310ebbae
Author: Jinrui.Zhang <[email protected]>
AuthorDate: Sun Apr 23 20:42:33 2023 +0800

    add visit method for FastInsertRow
---
 .../db/mpp/plan/planner/LogicalPlanVisitor.java    | 22 ++++++++++++----------
 .../db/mpp/plan/planner/plan/node/PlanVisitor.java |  5 +++++
 .../planner/plan/node/write/FastInsertRowNode.java |  6 ++++++
 .../db/mpp/plan/statement/StatementVisitor.java    |  5 +++++
 .../statement/crud/FastInsertRowStatement.java     |  7 +++++++
 5 files changed, 35 insertions(+), 10 deletions(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LogicalPlanVisitor.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LogicalPlanVisitor.java
index e9cbdb59f6..51cd99fd66 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LogicalPlanVisitor.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LogicalPlanVisitor.java
@@ -454,6 +454,17 @@ public class LogicalPlanVisitor extends 
StatementVisitor<PlanNode, MPPQueryConte
         insertRowStatement.isNeedInferType());
   }
 
+  @Override
+  public PlanNode visitFastInsertRow(
+      FastInsertRowStatement insertRowStatement, MPPQueryContext context) {
+    // convert insert statement to insert node
+    return new FastInsertRowNode(
+        context.getQueryId().genPlanNodeId(),
+        insertRowStatement.getDevicePath(),
+        insertRowStatement.getTime(),
+        insertRowStatement.getRawValues());
+  }
+
   @Override
   public PlanNode visitLoadFile(LoadTsFileStatement loadTsFileStatement, 
MPPQueryContext context) {
     return new LoadTsFileNode(
@@ -618,16 +629,7 @@ public class LogicalPlanVisitor extends 
StatementVisitor<PlanNode, MPPQueryConte
       InsertRowStatement insertRowStatement =
           insertRowsStatement.getInsertRowStatementList().get(i);
       insertRowsNode.addOneInsertRowNode(
-          new InsertRowNode(
-              insertRowsNode.getPlanNodeId(),
-              insertRowStatement.getDevicePath(),
-              insertRowStatement.isAligned(),
-              insertRowStatement.getMeasurements(),
-              insertRowStatement.getDataTypes(),
-              insertRowStatement.getTime(),
-              insertRowStatement.getValues(),
-              insertRowStatement.isNeedInferType()),
-          i);
+          (InsertRowNode) insertRowStatement.accept(this, context), i);
     }
     return insertRowsNode;
   }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/PlanVisitor.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/PlanVisitor.java
index 86ef541965..aa8868792a 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/PlanVisitor.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/PlanVisitor.java
@@ -84,6 +84,7 @@ import 
org.apache.iotdb.db.mpp.plan.planner.plan.node.source.SeriesScanNode;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.source.ShowQueriesNode;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.source.SourceNode;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.write.DeleteDataNode;
+import org.apache.iotdb.db.mpp.plan.planner.plan.node.write.FastInsertRowNode;
 import 
org.apache.iotdb.db.mpp.plan.planner.plan.node.write.InsertMultiTabletsNode;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.write.InsertRowNode;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.write.InsertRowsNode;
@@ -382,6 +383,10 @@ public abstract class PlanVisitor<R, C> {
     return visitPlan(node, context);
   }
 
+  public R visitFastInsertRow(FastInsertRowNode node, C context) {
+    return visitPlan(node, context);
+  }
+
   public R visitInsertTablet(InsertTabletNode node, C context) {
     return visitPlan(node, context);
   }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/write/FastInsertRowNode.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/write/FastInsertRowNode.java
index 0667f84028..35e44345ea 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/write/FastInsertRowNode.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/write/FastInsertRowNode.java
@@ -21,6 +21,7 @@ package org.apache.iotdb.db.mpp.plan.planner.plan.node.write;
 
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNodeId;
+import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanVisitor;
 
 import java.nio.ByteBuffer;
 
@@ -36,4 +37,9 @@ public class FastInsertRowNode extends InsertRowNode {
     super(id, devicePath, true, null, null, time, null, false);
     this.rawValues = values;
   }
+
+  @Override
+  public <R, C> R accept(PlanVisitor<R, C> visitor, C context) {
+    return visitor.visitFastInsertRow(this, context);
+  }
 }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/StatementVisitor.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/StatementVisitor.java
index 43fbdd9b9c..2e77c0b371 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/StatementVisitor.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/StatementVisitor.java
@@ -20,6 +20,7 @@
 package org.apache.iotdb.db.mpp.plan.statement;
 
 import org.apache.iotdb.db.mpp.plan.statement.crud.DeleteDataStatement;
+import org.apache.iotdb.db.mpp.plan.statement.crud.FastInsertRowStatement;
 import org.apache.iotdb.db.mpp.plan.statement.crud.InsertMultiTabletsStatement;
 import org.apache.iotdb.db.mpp.plan.statement.crud.InsertRowStatement;
 import 
org.apache.iotdb.db.mpp.plan.statement.crud.InsertRowsOfOneDeviceStatement;
@@ -313,6 +314,10 @@ public abstract class StatementVisitor<R, C> {
     return visitStatement(countStatement, context);
   }
 
+  public R visitFastInsertRow(FastInsertRowStatement insertRowStatement, C 
context) {
+    return visitStatement(insertRowStatement, context);
+  }
+
   public R visitInsertRow(InsertRowStatement insertRowStatement, C context) {
     return visitStatement(insertRowStatement, context);
   }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/FastInsertRowStatement.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/FastInsertRowStatement.java
index 0ece663002..ab23d09015 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/FastInsertRowStatement.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/FastInsertRowStatement.java
@@ -19,6 +19,8 @@
 
 package org.apache.iotdb.db.mpp.plan.statement.crud;
 
+import org.apache.iotdb.db.mpp.plan.statement.StatementVisitor;
+
 import java.nio.ByteBuffer;
 
 public class FastInsertRowStatement extends InsertRowStatement {
@@ -32,4 +34,9 @@ public class FastInsertRowStatement extends 
InsertRowStatement {
   public ByteBuffer getRawValues() {
     return rawValues;
   }
+
+  @Override
+  public <R, C> R accept(StatementVisitor<R, C> visitor, C context) {
+    return visitor.visitFastInsertRow(this, context);
+  }
 }

Reply via email to