This is an automated email from the ASF dual-hosted git repository.
jiangtian pushed a commit to branch TableModelIngestion
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/TableModelIngestion by this
push:
new 6c24a6f9ec6 temp save
6c24a6f9ec6 is described below
commit 6c24a6f9ec6bda615ba1041c22177c46a40e6915
Author: jt2594838 <[email protected]>
AuthorDate: Tue Jun 11 20:33:05 2024 +0800
temp save
---
.../db/queryengine/plan/analyze/Analysis.java | 2 +-
.../db/queryengine/plan/analyze/AnalyzeUtils.java | 25 ++---
.../queryengine/plan/analyze/AnalyzeVisitor.java | 122 +++++++++++----------
.../db/queryengine/plan/analyze/IAnalysis.java | 21 +---
.../plan/analyze/LoadTsfileAnalyzer.java | 2 +-
.../memory/StatementMemorySourceVisitor.java | 2 +-
.../plan/relational/analyzer/Analysis.java | 21 +++-
.../plan/relational/planner/LogicalPlanner.java | 2 +-
.../distribute/FragmentInstanceGenerator.java | 2 +-
.../distribute/TableDistributionPlanner.java | 2 +-
.../plan/planner/distribution/Util.java | 2 +-
.../plan/planner/distribution/Util2.java | 2 +-
12 files changed, 107 insertions(+), 98 deletions(-)
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/Analysis.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/Analysis.java
index 23caac86c1d..67e10f160ad 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/Analysis.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/Analysis.java
@@ -374,7 +374,7 @@ public class Analysis implements IAnalysis {
return statement;
}
- public void setTreeStatement(Statement statement) {
+ public void setRealStatement(Statement statement) {
this.statement = statement;
}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeUtils.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeUtils.java
index df3a795f1b1..f1b9210c216 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeUtils.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeUtils.java
@@ -53,19 +53,18 @@ public class AnalyzeUtils {
// util class
}
- public static IAnalysis analyzeInsert(MPPQueryContext context,
+ public static void analyzeInsert(MPPQueryContext context,
InsertBaseStatement insertBaseStatement, Runnable schemaValidation,
- DataPartitionQueryFunc partitionFetcher) {
+ DataPartitionQueryFunc partitionFetcher, IAnalysis analysis) {
context.setQueryType(QueryType.WRITE);
insertBaseStatement.semanticCheck();
- IAnalysis analysis = new
org.apache.iotdb.db.queryengine.plan.analyze.Analysis();
validateSchema(analysis, insertBaseStatement,
schemaValidation);
InsertBaseStatement realStatement = removeLogicalView(analysis,
insertBaseStatement);
if (analysis.isFinishQueryAfterAnalyze()) {
- return analysis;
+ return;
}
- analysis.setTreeStatement(realStatement);
+ analysis.setRealStatement(realStatement);
if (realStatement instanceof InsertTabletStatement) {
InsertTabletStatement realInsertTabletStatement =
(InsertTabletStatement) realStatement;
@@ -75,17 +74,16 @@ public class AnalyzeUtils {
dataPartitionQueryParam.setTimePartitionSlotList(
realInsertTabletStatement.getTimePartitionSlots());
- analysis = getAnalysisForWriting(
+ getAnalysisForWriting(
analysis,
Collections.singletonList(dataPartitionQueryParam),
context.getSession().getUserName(), partitionFetcher);
} else {
- analysis = computeAnalysisForMultiTablets(
+ computeAnalysisForMultiTablets(
analysis,
(InsertMultiTabletsStatement) realStatement,
context.getSession().getUserName(), partitionFetcher);
}
- return analysis;
}
public static void validateSchema(
@@ -137,7 +135,7 @@ public class AnalyzeUtils {
}
/** get analysis according to statement and params */
- public static IAnalysis getAnalysisForWriting(
+ public static void getAnalysisForWriting(
IAnalysis analysis, List<DataPartitionQueryParam>
dataPartitionQueryParams, String userName,
DataPartitionQueryFunc partitionQueryFunc) {
@@ -152,10 +150,9 @@ public class AnalyzeUtils {
+ "because enable_auto_create_schema is FALSE."));
}
analysis.setDataPartitionInfo(dataPartition);
- return analysis;
}
- public static IAnalysis computeAnalysisForInsertRows(
+ public static void computeAnalysisForInsertRows(
IAnalysis analysis, InsertRowsStatement insertRowsStatement, String
userName,
DataPartitionQueryFunc partitionFetcher) {
Map<String, Set<TTimePartitionSlot>> dataPartitionQueryParamMap = new
HashMap<>();
@@ -174,10 +171,10 @@ public class AnalyzeUtils {
dataPartitionQueryParams.add(dataPartitionQueryParam);
}
- return getAnalysisForWriting(analysis, dataPartitionQueryParams, userName,
partitionFetcher);
+ getAnalysisForWriting(analysis, dataPartitionQueryParams, userName,
partitionFetcher);
}
- public static IAnalysis computeAnalysisForMultiTablets(
+ public static void computeAnalysisForMultiTablets(
IAnalysis analysis, InsertMultiTabletsStatement
insertMultiTabletsStatement, String userName
, DataPartitionQueryFunc partitionFetcher) {
Map<String, Set<TTimePartitionSlot>> dataPartitionQueryParamMap = new
HashMap<>();
@@ -197,7 +194,7 @@ public class AnalyzeUtils {
dataPartitionQueryParams.add(dataPartitionQueryParam);
}
- return getAnalysisForWriting(analysis, dataPartitionQueryParams, userName,
partitionFetcher);
+ getAnalysisForWriting(analysis, dataPartitionQueryParams, userName,
partitionFetcher);
}
public interface DataPartitionQueryFunc {
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 b63ea6ddc1e..f8904a2b448 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
@@ -206,7 +206,7 @@ import static
org.apache.iotdb.db.schemaengine.schemaregion.view.visitor.GetSour
import static org.apache.iotdb.db.utils.constant.SqlConstant.COUNT_TIME_HEADER;
/** This visitor is used to analyze each type of Statement and returns the
{@link Analysis}. */
-public class AnalyzeVisitor extends StatementVisitor<IAnalysis,
MPPQueryContext> {
+public class AnalyzeVisitor extends StatementVisitor<Analysis,
MPPQueryContext> {
private static final Logger logger =
LoggerFactory.getLogger(AnalyzeVisitor.class);
@@ -241,7 +241,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
@Override
public Analysis visitExplain(ExplainStatement explainStatement,
MPPQueryContext context) {
Analysis analysis = visitQuery(explainStatement.getQueryStatement(),
context);
- analysis.setTreeStatement(explainStatement);
+ analysis.setRealStatement(explainStatement);
analysis.setFinishQueryAfterAnalyze(true);
return analysis;
}
@@ -251,7 +251,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
ExplainAnalyzeStatement explainAnalyzeStatement, MPPQueryContext
context) {
Analysis analysis =
visitQuery(explainAnalyzeStatement.getQueryStatement(), context);
context.setExplainAnalyze(true);
- analysis.setTreeStatement(explainAnalyzeStatement);
+ analysis.setRealStatement(explainAnalyzeStatement);
analysis.setRespDatasetHeader(
new DatasetHeader(
Collections.singletonList(
@@ -406,7 +406,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
(QueryStatement)
concatPathRewriter.rewrite(
queryStatement, new
PathPatternTree(queryStatement.useWildcard()), context);
- analysis.setTreeStatement(queryStatement);
+ analysis.setRealStatement(queryStatement);
// request schema fetch API
long startTime = System.nanoTime();
@@ -2277,7 +2277,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
}
@Override
- public IAnalysis visitInsert(InsertStatement insertStatement,
MPPQueryContext context) {
+ public Analysis visitInsert(InsertStatement insertStatement, MPPQueryContext
context) {
context.setQueryType(QueryType.WRITE);
long[] timeArray = insertStatement.getTimes();
PartialPath devicePath = insertStatement.getDevice();
@@ -2362,7 +2362,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
}
Analysis analysis = new Analysis();
- analysis.setTreeStatement(createTimeSeriesStatement);
+ analysis.setRealStatement(createTimeSeriesStatement);
checkIsTableCompatible(createTimeSeriesStatement.getPath(), context);
checkIsTemplateCompatible(
@@ -2474,7 +2474,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
}
Analysis analysis = new Analysis();
- analysis.setTreeStatement(createAlignedTimeSeriesStatement);
+ analysis.setRealStatement(createAlignedTimeSeriesStatement);
checkIsTableCompatible(createAlignedTimeSeriesStatement.getDevicePath(),
context);
checkIsTemplateCompatible(
@@ -2504,7 +2504,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
context.setQueryType(QueryType.WRITE);
Analysis analysis = new Analysis();
- analysis.setTreeStatement(internalCreateTimeSeriesStatement);
+ analysis.setRealStatement(internalCreateTimeSeriesStatement);
checkIsTableCompatible(internalCreateTimeSeriesStatement.getDevicePath(),
context);
checkIsTemplateCompatible(
internalCreateTimeSeriesStatement.getDevicePath(),
@@ -2534,7 +2534,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
context.setQueryType(QueryType.WRITE);
Analysis analysis = new Analysis();
- analysis.setTreeStatement(internalCreateMultiTimeSeriesStatement);
+ analysis.setRealStatement(internalCreateMultiTimeSeriesStatement);
PathPatternTree pathPatternTree = new PathPatternTree();
DataNodeSchemaLockManager.getInstance().takeReadLock(SchemaLockType.TIMESERIES_VS_TEMPLATE);
@@ -2560,7 +2560,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
CreateMultiTimeSeriesStatement createMultiTimeSeriesStatement,
MPPQueryContext context) {
context.setQueryType(QueryType.WRITE);
Analysis analysis = new Analysis();
- analysis.setTreeStatement(createMultiTimeSeriesStatement);
+ analysis.setRealStatement(createMultiTimeSeriesStatement);
analyzeSchemaProps(createMultiTimeSeriesStatement.getPropsList());
@@ -2591,7 +2591,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
AlterTimeSeriesStatement alterTimeSeriesStatement, MPPQueryContext
context) {
context.setQueryType(QueryType.WRITE);
Analysis analysis = new Analysis();
- analysis.setTreeStatement(alterTimeSeriesStatement);
+ analysis.setRealStatement(alterTimeSeriesStatement);
Pair<Template, PartialPath> templateInfo =
schemaFetcher.checkTemplateSetAndPreSetInfo(
@@ -2615,15 +2615,17 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
}
@Override
- public IAnalysis visitInsertTablet(
+ public Analysis visitInsertTablet(
InsertTabletStatement insertTabletStatement, MPPQueryContext context) {
- return AnalyzeUtils.analyzeInsert(context, insertTabletStatement,
+ Analysis analysis = new Analysis();
+ AnalyzeUtils.analyzeInsert(context, insertTabletStatement,
() -> SchemaValidator.validate(schemaFetcher, insertTabletStatement,
context),
- partitionFetcher::getOrCreateDataPartition);
+ partitionFetcher::getOrCreateDataPartition, analysis);
+ return analysis;
}
@Override
- public IAnalysis visitInsertRow(InsertRowStatement insertRowStatement,
MPPQueryContext context) {
+ public Analysis visitInsertRow(InsertRowStatement insertRowStatement,
MPPQueryContext context) {
context.setQueryType(QueryType.WRITE);
insertRowStatement.semanticCheck();
Analysis analysis = new Analysis();
@@ -2633,7 +2635,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
if (analysis.isFinishQueryAfterAnalyze()) {
return analysis;
}
- analysis.setTreeStatement(realInsertStatement);
+ analysis.setRealStatement(realInsertStatement);
if (realInsertStatement instanceof InsertRowStatement) {
InsertRowStatement realInsertRowStatement = (InsertRowStatement)
realInsertStatement;
@@ -2642,19 +2644,20 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
dataPartitionQueryParam.setTimePartitionSlotList(
Collections.singletonList(realInsertRowStatement.getTimePartitionSlot()));
- return getAnalysisForWriting(
+ getAnalysisForWriting(
analysis,
Collections.singletonList(dataPartitionQueryParam),
context.getSession().getUserName(),
partitionFetcher::getOrCreateDataPartition);
} else {
- return computeAnalysisForInsertRows(
+ computeAnalysisForInsertRows(
analysis, (InsertRowsStatement) realInsertStatement,
context.getSession().getUserName()
, partitionFetcher::getOrCreateDataPartition);
}
+ return analysis;
}
@Override
- public IAnalysis visitInsertRows(
+ public Analysis visitInsertRows(
InsertRowsStatement insertRowsStatement, MPPQueryContext context) {
context.setQueryType(QueryType.WRITE);
insertRowsStatement.semanticCheck();
@@ -2666,14 +2669,15 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
if (analysis.isFinishQueryAfterAnalyze()) {
return analysis;
}
- analysis.setTreeStatement(realInsertRowsStatement);
+ analysis.setRealStatement(realInsertRowsStatement);
- return computeAnalysisForInsertRows(
+ computeAnalysisForInsertRows(
analysis, realInsertRowsStatement, context.getSession().getUserName(),
partitionFetcher::getOrCreateDataPartition);
+ return analysis;
}
@Override
- public IAnalysis visitInsertMultiTablets(
+ public Analysis visitInsertMultiTablets(
InsertMultiTabletsStatement insertMultiTabletsStatement, MPPQueryContext
context) {
context.setQueryType(QueryType.WRITE);
insertMultiTabletsStatement.semanticCheck();
@@ -2685,14 +2689,15 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
if (analysis.isFinishQueryAfterAnalyze()) {
return analysis;
}
- analysis.setTreeStatement(realStatement);
+ analysis.setRealStatement(realStatement);
- return computeAnalysisForMultiTablets(
+ computeAnalysisForMultiTablets(
analysis, realStatement, context.getSession().getUserName(),
partitionFetcher::getOrCreateDataPartition);
+ return analysis;
}
@Override
- public IAnalysis visitInsertRowsOfOneDevice(
+ public Analysis visitInsertRowsOfOneDevice(
InsertRowsOfOneDeviceStatement insertRowsOfOneDeviceStatement,
MPPQueryContext context) {
context.setQueryType(QueryType.WRITE);
insertRowsOfOneDeviceStatement.semanticCheck();
@@ -2704,7 +2709,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
if (analysis.isFinishQueryAfterAnalyze()) {
return analysis;
}
- analysis.setTreeStatement(realInsertStatement);
+ analysis.setRealStatement(realInsertStatement);
if (realInsertStatement instanceof InsertRowsOfOneDeviceStatement) {
InsertRowsOfOneDeviceStatement realStatement =
@@ -2713,26 +2718,27 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
dataPartitionQueryParam.setDevicePath(realStatement.getDevicePath().getFullPath());
dataPartitionQueryParam.setTimePartitionSlotList(realStatement.getTimePartitionSlots());
- return getAnalysisForWriting(
+ getAnalysisForWriting(
analysis,
Collections.singletonList(dataPartitionQueryParam),
context.getSession().getUserName(),
partitionFetcher::getOrCreateDataPartition);
} else {
- return computeAnalysisForInsertRows(
+ computeAnalysisForInsertRows(
analysis, (InsertRowsStatement) realInsertStatement,
context.getSession().getUserName()
, partitionFetcher::getOrCreateDataPartition);
}
+ return analysis;
}
@Override
- public IAnalysis visitPipeEnrichedStatement(
+ public Analysis visitPipeEnrichedStatement(
PipeEnrichedStatement pipeEnrichedStatement, MPPQueryContext context) {
- IAnalysis analysis =
pipeEnrichedStatement.getInnerStatement().accept(this, context);
+ Analysis analysis = pipeEnrichedStatement.getInnerStatement().accept(this,
context);
// statement may be changed because of logical view
pipeEnrichedStatement.setInnerStatement(analysis.getTreeStatement());
- analysis.setTreeStatement(pipeEnrichedStatement);
+ analysis.setRealStatement(pipeEnrichedStatement);
return analysis;
}
@@ -2811,7 +2817,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
public Analysis visitShowTimeSeries(
ShowTimeSeriesStatement showTimeSeriesStatement, MPPQueryContext
context) {
Analysis analysis = new Analysis();
- analysis.setTreeStatement(showTimeSeriesStatement);
+ analysis.setRealStatement(showTimeSeriesStatement);
PathPatternTree patternTree = new PathPatternTree();
patternTree.appendPathPattern(showTimeSeriesStatement.getPathPattern());
@@ -2864,7 +2870,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
public Analysis visitShowStorageGroup(
ShowDatabaseStatement showDatabaseStatement, MPPQueryContext context) {
Analysis analysis = new Analysis();
- analysis.setTreeStatement(showDatabaseStatement);
+ analysis.setRealStatement(showDatabaseStatement);
analysis.setRespDatasetHeader(
DatasetHeaderFactory.getShowStorageGroupHeader(showDatabaseStatement.isDetailed()));
return analysis;
@@ -2873,7 +2879,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
@Override
public Analysis visitShowTTL(ShowTTLStatement showTTLStatement,
MPPQueryContext context) {
Analysis analysis = new Analysis();
- analysis.setTreeStatement(showTTLStatement);
+ analysis.setRealStatement(showTTLStatement);
analysis.setRespDatasetHeader(DatasetHeaderFactory.getShowTTLHeader());
return analysis;
}
@@ -2939,7 +2945,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
public Analysis visitShowDevices(
ShowDevicesStatement showDevicesStatement, MPPQueryContext context) {
Analysis analysis = new Analysis();
- analysis.setTreeStatement(showDevicesStatement);
+ analysis.setRealStatement(showDevicesStatement);
PathPatternTree patternTree = new PathPatternTree();
patternTree.appendPathPattern(
@@ -2963,7 +2969,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
public Analysis visitShowCluster(
ShowClusterStatement showClusterStatement, MPPQueryContext context) {
Analysis analysis = new Analysis();
- analysis.setTreeStatement(showClusterStatement);
+ analysis.setRealStatement(showClusterStatement);
if (showClusterStatement.isDetails()) {
analysis.setRespDatasetHeader(DatasetHeaderFactory.getShowClusterDetailsHeader());
} else {
@@ -2976,7 +2982,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
public Analysis visitCountStorageGroup(
CountDatabaseStatement countDatabaseStatement, MPPQueryContext context) {
Analysis analysis = new Analysis();
- analysis.setTreeStatement(countDatabaseStatement);
+ analysis.setRealStatement(countDatabaseStatement);
analysis.setRespDatasetHeader(DatasetHeaderFactory.getCountStorageGroupHeader());
return analysis;
}
@@ -2985,7 +2991,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
public Analysis visitSchemaFetch(
SchemaFetchStatement schemaFetchStatement, MPPQueryContext context) {
Analysis analysis = new Analysis();
- analysis.setTreeStatement(schemaFetchStatement);
+ analysis.setRealStatement(schemaFetchStatement);
SchemaPartition schemaPartition =
partitionFetcher.getSchemaPartition(schemaFetchStatement.getPatternTree());
@@ -3002,7 +3008,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
public Analysis visitCountDevices(
CountDevicesStatement countDevicesStatement, MPPQueryContext context) {
Analysis analysis = new Analysis();
- analysis.setTreeStatement(countDevicesStatement);
+ analysis.setRealStatement(countDevicesStatement);
PathPatternTree patternTree = new PathPatternTree();
patternTree.appendPathPattern(
@@ -3023,7 +3029,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
public Analysis visitCountTimeSeries(
CountTimeSeriesStatement countTimeSeriesStatement, MPPQueryContext
context) {
Analysis analysis = new Analysis();
- analysis.setTreeStatement(countTimeSeriesStatement);
+ analysis.setRealStatement(countTimeSeriesStatement);
PathPatternTree patternTree = new PathPatternTree();
patternTree.appendPathPattern(countTimeSeriesStatement.getPathPattern());
@@ -3055,7 +3061,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
public Analysis visitCountLevelTimeSeries(
CountLevelTimeSeriesStatement countLevelTimeSeriesStatement,
MPPQueryContext context) {
Analysis analysis = new Analysis();
- analysis.setTreeStatement(countLevelTimeSeriesStatement);
+ analysis.setRealStatement(countLevelTimeSeriesStatement);
PathPatternTree patternTree = new PathPatternTree();
patternTree.appendPathPattern(countLevelTimeSeriesStatement.getPathPattern());
@@ -3072,7 +3078,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
@Override
public Analysis visitCountNodes(CountNodesStatement countStatement,
MPPQueryContext context) {
Analysis analysis = new Analysis();
- analysis.setTreeStatement(countStatement);
+ analysis.setRealStatement(countStatement);
PathPatternTree patternTree = new PathPatternTree();
patternTree.appendPathPattern(countStatement.getPathPattern());
@@ -3117,7 +3123,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
public Analysis visitShowVersion(
ShowVersionStatement showVersionStatement, MPPQueryContext context) {
Analysis analysis = new Analysis();
- analysis.setTreeStatement(showVersionStatement);
+ analysis.setRealStatement(showVersionStatement);
analysis.setRespDatasetHeader(DatasetHeaderFactory.getShowVersionHeader());
analysis.setFinishQueryAfterAnalyze(true);
return analysis;
@@ -3126,7 +3132,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
private Analysis visitSchemaNodeManagementPartition(
Statement statement, PartialPath path, PathPatternTree scope,
DatasetHeader header) {
Analysis analysis = new Analysis();
- analysis.setTreeStatement(statement);
+ analysis.setRealStatement(statement);
PathPatternTree patternTree = new PathPatternTree();
patternTree.appendPathPattern(path);
@@ -3151,7 +3157,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
DeleteDataStatement deleteDataStatement, MPPQueryContext context) {
context.setQueryType(QueryType.WRITE);
Analysis analysis = new Analysis();
- analysis.setTreeStatement(deleteDataStatement);
+ analysis.setRealStatement(deleteDataStatement);
PathPatternTree patternTree = new PathPatternTree();
deleteDataStatement.getPathList().forEach(patternTree::appendPathPattern);
@@ -3223,7 +3229,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
"Measurement under template is not allowed to have the same
measurement name");
}
Analysis analysis = new Analysis();
- analysis.setTreeStatement(createTemplateStatement);
+ analysis.setRealStatement(createTemplateStatement);
return analysis;
}
@@ -3232,7 +3238,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
ShowNodesInSchemaTemplateStatement showNodesInSchemaTemplateStatement,
MPPQueryContext context) {
Analysis analysis = new Analysis();
- analysis.setTreeStatement(showNodesInSchemaTemplateStatement);
+ analysis.setRealStatement(showNodesInSchemaTemplateStatement);
analysis.setRespDatasetHeader(DatasetHeaderFactory.getShowNodesInSchemaTemplateHeader());
return analysis;
}
@@ -3241,7 +3247,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
public Analysis visitShowSchemaTemplate(
ShowSchemaTemplateStatement showSchemaTemplateStatement, MPPQueryContext
context) {
Analysis analysis = new Analysis();
- analysis.setTreeStatement(showSchemaTemplateStatement);
+ analysis.setRealStatement(showSchemaTemplateStatement);
analysis.setRespDatasetHeader(DatasetHeaderFactory.getShowSchemaTemplateHeader());
return analysis;
}
@@ -3251,7 +3257,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
SetSchemaTemplateStatement setSchemaTemplateStatement, MPPQueryContext
context) {
context.setQueryType(QueryType.WRITE);
Analysis analysis = new Analysis();
- analysis.setTreeStatement(setSchemaTemplateStatement);
+ analysis.setRealStatement(setSchemaTemplateStatement);
return analysis;
}
@@ -3259,7 +3265,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
public Analysis visitShowPathSetTemplate(
ShowPathSetTemplateStatement showPathSetTemplateStatement,
MPPQueryContext context) {
Analysis analysis = new Analysis();
- analysis.setTreeStatement(showPathSetTemplateStatement);
+ analysis.setRealStatement(showPathSetTemplateStatement);
analysis.setRespDatasetHeader(DatasetHeaderFactory.getShowPathSetTemplateHeader());
return analysis;
}
@@ -3269,7 +3275,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
ActivateTemplateStatement activateTemplateStatement, MPPQueryContext
context) {
context.setQueryType(QueryType.WRITE);
Analysis analysis = new Analysis();
- analysis.setTreeStatement(activateTemplateStatement);
+ analysis.setRealStatement(activateTemplateStatement);
PartialPath activatePath = activateTemplateStatement.getPath();
@@ -3299,7 +3305,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
BatchActivateTemplateStatement batchActivateTemplateStatement,
MPPQueryContext context) {
context.setQueryType(QueryType.WRITE);
Analysis analysis = new Analysis();
- analysis.setTreeStatement(batchActivateTemplateStatement);
+ analysis.setRealStatement(batchActivateTemplateStatement);
Map<PartialPath, Pair<Template, PartialPath>> deviceTemplateSetInfoMap =
new
HashMap<>(batchActivateTemplateStatement.getDevicePathList().size());
@@ -3335,7 +3341,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
MPPQueryContext context) {
context.setQueryType(QueryType.WRITE);
Analysis analysis = new Analysis();
- analysis.setTreeStatement(internalBatchActivateTemplateStatement);
+ analysis.setRealStatement(internalBatchActivateTemplateStatement);
PathPatternTree patternTree = new PathPatternTree();
for (PartialPath activatePath :
@@ -3356,7 +3362,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
public Analysis visitShowPathsUsingTemplate(
ShowPathsUsingTemplateStatement showPathsUsingTemplateStatement,
MPPQueryContext context) {
Analysis analysis = new Analysis();
- analysis.setTreeStatement(showPathsUsingTemplateStatement);
+ analysis.setRealStatement(showPathsUsingTemplateStatement);
analysis.setRespDatasetHeader(DatasetHeaderFactory.getShowPathsUsingTemplateHeader());
Pair<Template, List<PartialPath>> templateSetInfo =
@@ -3403,7 +3409,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
public Analysis visitShowQueries(
ShowQueriesStatement showQueriesStatement, MPPQueryContext context) {
Analysis analysis = new Analysis();
- analysis.setTreeStatement(showQueriesStatement);
+ analysis.setRealStatement(showQueriesStatement);
analysis.setRespDatasetHeader(DatasetHeaderFactory.getShowQueriesHeader());
analysis.setVirtualSource(true);
@@ -3475,7 +3481,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
CreateLogicalViewStatement createLogicalViewStatement, MPPQueryContext
context) {
Analysis analysis = new Analysis();
context.setQueryType(QueryType.WRITE);
- analysis.setTreeStatement(createLogicalViewStatement);
+ analysis.setRealStatement(createLogicalViewStatement);
if (createLogicalViewStatement.getViewExpressions() == null) {
// Analyze query in statement
@@ -3737,7 +3743,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
ShowLogicalViewStatement showLogicalViewStatement, MPPQueryContext
context) {
context.setQueryType(QueryType.READ);
Analysis analysis = new Analysis();
- analysis.setTreeStatement(showLogicalViewStatement);
+ analysis.setRealStatement(showLogicalViewStatement);
PathPatternTree patternTree = new PathPatternTree();
patternTree.appendPathPattern(showLogicalViewStatement.getPathPattern());
@@ -3754,7 +3760,7 @@ public class AnalyzeVisitor extends
StatementVisitor<IAnalysis, MPPQueryContext>
public Analysis visitShowCurrentTimestamp(
ShowCurrentTimestampStatement showCurrentTimestampStatement,
MPPQueryContext context) {
Analysis analysis = new Analysis();
- analysis.setTreeStatement(showCurrentTimestampStatement);
+ analysis.setRealStatement(showCurrentTimestampStatement);
analysis.setFinishQueryAfterAnalyze(true);
analysis.setRespDatasetHeader(DatasetHeaderFactory.getShowCurrentTimestampHeader());
return analysis;
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/IAnalysis.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/IAnalysis.java
index 1fcb7bf41ec..823a056df22 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/IAnalysis.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/IAnalysis.java
@@ -45,24 +45,13 @@ public interface IAnalysis {
String getStatementType();
- default void setFinishQueryAfterAnalyze(boolean b) {
+ void setFinishQueryAfterAnalyze(boolean b);
- }
+ void setFailStatus(TSStatus status);
- default void setFailStatus(TSStatus status) {
+ boolean isFinishQueryAfterAnalyze();
- }
+ default void setRealStatement(Statement realStatement) {}
- default boolean isFinishQueryAfterAnalyze() {
- return false;
- }
-
- default void setTreeStatement(Statement realStatement) {}
-
- default void setDataPartitionInfo(DataPartition dataPartition) {
- }
-
- default Statement getTreeStatement(){
- return null;
- }
+ void setDataPartitionInfo(DataPartition dataPartition);
}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/LoadTsfileAnalyzer.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/LoadTsfileAnalyzer.java
index 70d0a382525..25fbedb69f5 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/LoadTsfileAnalyzer.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/LoadTsfileAnalyzer.java
@@ -195,7 +195,7 @@ public class LoadTsfileAnalyzer {
// data partition will be queried in the scheduler
final Analysis analysis = new Analysis();
- analysis.setTreeStatement(loadTsFileStatement);
+ analysis.setRealStatement(loadTsFileStatement);
return analysis;
}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/memory/StatementMemorySourceVisitor.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/memory/StatementMemorySourceVisitor.java
index 6a2bbab43fd..ced5ea9325f 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/memory/StatementMemorySourceVisitor.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/memory/StatementMemorySourceVisitor.java
@@ -79,7 +79,7 @@ public class StatementMemorySourceVisitor
@Override
public StatementMemorySource visitExplain(
ExplainStatement node, StatementMemorySourceContext context) {
- context.getAnalysis().setTreeStatement(node.getQueryStatement());
+ context.getAnalysis().setRealStatement(node.getQueryStatement());
DatasetHeader header =
new DatasetHeader(
Collections.singletonList(
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/Analysis.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/Analysis.java
index b8749f6957f..7a6b3bcbc53 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/Analysis.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/Analysis.java
@@ -161,6 +161,8 @@ public class Analysis implements IAnalysis {
// indicate is there a value filter
private boolean hasValueFilter = false;
+ private TSStatus failStatus;
+
public Expression getGlobalTableModelTimePredicate() {
return this.globalTableModelTimePredicate;
}
@@ -186,7 +188,7 @@ public class Analysis implements IAnalysis {
return parameters;
}
- public Statement getTreeStatement() {
+ public Statement getStatement() {
return root;
}
@@ -585,7 +587,12 @@ public class Analysis implements IAnalysis {
@Override
public TSStatus getFailStatus() {
- return null;
+ return failStatus;
+ }
+
+ @Override
+ public void setFailStatus(TSStatus failStatus) {
+ this.failStatus = failStatus;
}
@Override
@@ -597,6 +604,11 @@ public class Analysis implements IAnalysis {
this.finishQueryAfterAnalyze = true;
}
+ @Override
+ public void setFinishQueryAfterAnalyze(boolean finishQueryAfterAnalyze) {
+ this.finishQueryAfterAnalyze = finishQueryAfterAnalyze;
+ }
+
public boolean isFinishQueryAfterAnalyze() {
return finishQueryAfterAnalyze;
}
@@ -609,6 +621,11 @@ public class Analysis implements IAnalysis {
// && ((QueryStatement) statement).isAggregationQuery());
}
+ @Override
+ public void setDataPartitionInfo(DataPartition dataPartition) {
+ this.dataPartition = dataPartition;
+ }
+
@Override
public TsBlock constructResultForMemorySource(MPPQueryContext context) {
StatementMemorySource source =
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/LogicalPlanner.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/LogicalPlanner.java
index 8526d39da25..719ede30231 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/LogicalPlanner.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/LogicalPlanner.java
@@ -85,7 +85,7 @@ public class LogicalPlanner {
}
public LogicalQueryPlan plan(Analysis analysis) throws IoTDBException {
- PlanNode planNode = planStatement(analysis, analysis.getTreeStatement());
+ PlanNode planNode = planStatement(analysis, analysis.getStatement());
relationalPlanOptimizers.forEach(
optimizer ->
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/FragmentInstanceGenerator.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/FragmentInstanceGenerator.java
index 6ce858d179d..623217e340f 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/FragmentInstanceGenerator.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/FragmentInstanceGenerator.java
@@ -141,7 +141,7 @@ public class FragmentInstanceGenerator {
return v;
});
- if (analysis.getTreeStatement() instanceof Query) {
+ if (analysis.getStatement() instanceof Query) {
fragmentInstance.getFragment().generateTableModelTypeProvider(queryContext.getTypeProvider());
}
instanceMap.putIfAbsent(fragment.getId(), fragmentInstance);
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableDistributionPlanner.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableDistributionPlanner.java
index 7fa34d6de89..83f1548ee3a 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableDistributionPlanner.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableDistributionPlanner.java
@@ -59,7 +59,7 @@ public class TableDistributionPlanner {
}
PlanNode outputNodeWithExchange = distributedPlanNodeResult.get(0);
- if (analysis.getTreeStatement() instanceof Query) {
+ if (analysis.getStatement() instanceof Query) {
analysis
.getRespDatasetHeader()
.setColumnToTsBlockIndexMap(
diff --git
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/Util.java
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/Util.java
index 223d12f6af3..67ec4d62910 100644
---
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/Util.java
+++
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/Util.java
@@ -228,7 +228,7 @@ public class Util {
analysis.setSchemaPartitionInfo(schemaPartition);
analysis.setSchemaTree(genSchemaTree());
// to avoid some special case which is not the point of test
- analysis.setTreeStatement(Mockito.mock(QueryStatement.class));
+ analysis.setRealStatement(Mockito.mock(QueryStatement.class));
Mockito.when(analysis.getTreeStatement().isQuery()).thenReturn(false);
return analysis;
} catch (IllegalPathException e) {
diff --git
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/Util2.java
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/Util2.java
index a2583bf812a..52f854a3b1c 100644
---
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/Util2.java
+++
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/Util2.java
@@ -142,7 +142,7 @@ public class Util2 {
analysis.setSchemaPartitionInfo(schemaPartition);
analysis.setSchemaTree(genSchemaTree());
// to avoid some special case which is not the point of test
- analysis.setTreeStatement(Mockito.mock(QueryStatement.class));
+ analysis.setRealStatement(Mockito.mock(QueryStatement.class));
Mockito.when(analysis.getTreeStatement().isQuery()).thenReturn(false);
return analysis;
}