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);
+ }
}