You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ro...@apache.org on 2023/08/15 07:05:13 UTC
[iotdb] 03/04: Analysis
This is an automated email from the ASF dual-hosted git repository.
rong pushed a commit to branch multi-cyclic-pipe
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit b05fc31211ccd0f3b988cadd58fd89a5c090892e
Author: Steve Yurong Su <ro...@apache.org>
AuthorDate: Mon Aug 14 22:28:30 2023 +0800
Analysis
---
.../queryengine/plan/analyze/AnalyzeVisitor.java | 32 ++++++++++++++++++++++
.../crud/PipeEnrichedInsertBaseStatement.java | 6 +++-
2 files changed, 37 insertions(+), 1 deletion(-)
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeVisitor.java
index 50fa6b50988..3cfda307723 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeVisitor.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeVisitor.java
@@ -98,6 +98,7 @@ import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertRowsStatement;
import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertStatement;
import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertTabletStatement;
import org.apache.iotdb.db.queryengine.plan.statement.crud.LoadTsFileStatement;
+import org.apache.iotdb.db.queryengine.plan.statement.crud.PipeEnrichedInsertBaseStatement;
import org.apache.iotdb.db.queryengine.plan.statement.crud.QueryStatement;
import org.apache.iotdb.db.queryengine.plan.statement.internal.InternalBatchActivateTemplateStatement;
import org.apache.iotdb.db.queryengine.plan.statement.internal.InternalCreateMultiTimeSeriesStatement;
@@ -2424,6 +2425,37 @@ public class AnalyzeVisitor extends StatementVisitor<Analysis, MPPQueryContext>
}
}
+ @Override
+ public Analysis visitPipeEnrichedInsert(
+ PipeEnrichedInsertBaseStatement pipeEnrichedInsertBaseStatement, MPPQueryContext context) {
+ Analysis analysis;
+
+ final InsertBaseStatement insertBaseStatement =
+ pipeEnrichedInsertBaseStatement.getInsertBaseStatement();
+ if (insertBaseStatement instanceof InsertTabletStatement) {
+ analysis = visitInsertTablet((InsertTabletStatement) insertBaseStatement, context);
+ } else if (insertBaseStatement instanceof InsertMultiTabletsStatement) {
+ analysis =
+ visitInsertMultiTablets((InsertMultiTabletsStatement) insertBaseStatement, context);
+ } else if (insertBaseStatement instanceof InsertRowStatement) {
+ analysis = visitInsertRow((InsertRowStatement) insertBaseStatement, context);
+ } else if (insertBaseStatement instanceof InsertRowsStatement) {
+ analysis = visitInsertRows((InsertRowsStatement) insertBaseStatement, context);
+ } else if (insertBaseStatement instanceof InsertRowsOfOneDeviceStatement) {
+ analysis =
+ visitInsertRowsOfOneDevice((InsertRowsOfOneDeviceStatement) insertBaseStatement, context);
+ } else {
+ throw new UnsupportedOperationException(
+ "Unsupported insert statement type: " + insertBaseStatement.getClass().getName());
+ }
+
+ // statement may be changed because of logical view
+ pipeEnrichedInsertBaseStatement.setInsertBaseStatement(
+ (InsertBaseStatement) analysis.getStatement());
+ analysis.setStatement(pipeEnrichedInsertBaseStatement);
+ return analysis;
+ }
+
private void validateSchema(
Analysis analysis, InsertBaseStatement insertStatement, MPPQueryContext context) {
final long startTime = System.nanoTime();
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/PipeEnrichedInsertBaseStatement.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/PipeEnrichedInsertBaseStatement.java
index 0abe0a6eaa9..10834b20ecc 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/PipeEnrichedInsertBaseStatement.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/PipeEnrichedInsertBaseStatement.java
@@ -35,7 +35,7 @@ import java.util.Map;
public class PipeEnrichedInsertBaseStatement extends InsertBaseStatement {
- private final InsertBaseStatement insertBaseStatement;
+ private InsertBaseStatement insertBaseStatement;
public PipeEnrichedInsertBaseStatement(InsertBaseStatement insertBaseStatement) {
statementType = StatementType.PIPE_ENRICHED_INSERT;
@@ -46,6 +46,10 @@ public class PipeEnrichedInsertBaseStatement extends InsertBaseStatement {
return insertBaseStatement;
}
+ public void setInsertBaseStatement(InsertBaseStatement insertBaseStatement) {
+ this.insertBaseStatement = insertBaseStatement;
+ }
+
@Override
public <R, C> R accept(StatementVisitor<R, C> visitor, C context) {
return visitor.visitPipeEnrichedInsert(this, context);