This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 914ed16e14a Fix timeout doesn't take effect in schema fetch bug
(#11823)
914ed16e14a is described below
commit 914ed16e14a7df6a9f31091cad8d39b826e029bb
Author: Jackie Tien <[email protected]>
AuthorDate: Wed Jan 3 12:13:13 2024 +0800
Fix timeout doesn't take effect in schema fetch bug (#11823)
---
.../queryengine/plan/analyze/AnalyzeVisitor.java | 27 ++++++++++++----------
1 file changed, 15 insertions(+), 12 deletions(-)
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 7df1dd2e4b5..7f36a0d099c 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
@@ -289,7 +289,7 @@ public class AnalyzeVisitor extends
StatementVisitor<Analysis, MPPQueryContext>
analyzeDeviceViewOutput(analysis, queryStatement);
analyzeDeviceViewInput(analysis, queryStatement);
- analyzeInto(analysis, queryStatement, deviceList, outputExpressions);
+ analyzeInto(analysis, queryStatement, deviceList, outputExpressions,
context);
} else {
// analyze output expressions
if (queryStatement.isGroupByLevel()) {
@@ -339,7 +339,7 @@ public class AnalyzeVisitor extends
StatementVisitor<Analysis, MPPQueryContext>
analyzeSource(analysis, queryStatement);
// analyze into paths
- analyzeInto(analysis, queryStatement, outputExpressions);
+ analyzeInto(analysis, queryStatement, outputExpressions, context);
}
analyzeGroupByTime(analysis, queryStatement);
@@ -392,7 +392,7 @@ public class AnalyzeVisitor extends
StatementVisitor<Analysis, MPPQueryContext>
}
// make sure paths in logical view is fetched
- updateSchemaTreeByViews(analysis, schemaTree);
+ updateSchemaTreeByViews(analysis, schemaTree, context);
} finally {
logger.debug("[EndFetchSchema]");
QueryPlanCostMetricSet.getInstance()
@@ -500,7 +500,8 @@ public class AnalyzeVisitor extends
StatementVisitor<Analysis, MPPQueryContext>
lastQueryNonWritableViewSourceExpressionMap);
}
- private void updateSchemaTreeByViews(Analysis analysis, ISchemaTree
originSchemaTree) {
+ private void updateSchemaTreeByViews(
+ Analysis analysis, ISchemaTree originSchemaTree, MPPQueryContext
context) {
if (!originSchemaTree.hasLogicalViewMeasurement()) {
return;
}
@@ -534,7 +535,7 @@ public class AnalyzeVisitor extends
StatementVisitor<Analysis, MPPQueryContext>
}
if (needToReFetch) {
- ISchemaTree viewSchemaTree = this.schemaFetcher.fetchSchema(patternTree,
true, null);
+ ISchemaTree viewSchemaTree = this.schemaFetcher.fetchSchema(patternTree,
true, context);
originSchemaTree.mergeSchemaTree(viewSchemaTree);
Set<String> allDatabases = viewSchemaTree.getDatabases();
allDatabases.addAll(originSchemaTree.getDatabases());
@@ -1990,7 +1991,8 @@ public class AnalyzeVisitor extends
StatementVisitor<Analysis, MPPQueryContext>
Analysis analysis,
QueryStatement queryStatement,
List<PartialPath> deviceSet,
- List<Pair<Expression, String>> outputExpressions) {
+ List<Pair<Expression, String>> outputExpressions,
+ MPPQueryContext context) {
if (!queryStatement.isSelectInto()) {
return;
}
@@ -2041,7 +2043,7 @@ public class AnalyzeVisitor extends
StatementVisitor<Analysis, MPPQueryContext>
// fetch schema of target paths
long startTime = System.nanoTime();
- ISchemaTree targetSchemaTree = schemaFetcher.fetchSchema(targetPathTree,
true, null);
+ ISchemaTree targetSchemaTree = schemaFetcher.fetchSchema(targetPathTree,
true, context);
QueryPlanCostMetricSet.getInstance()
.recordPlanCost(SCHEMA_FETCHER, System.nanoTime() - startTime);
deviceViewIntoPathDescriptor.bindType(targetSchemaTree);
@@ -2052,7 +2054,8 @@ public class AnalyzeVisitor extends
StatementVisitor<Analysis, MPPQueryContext>
private void analyzeInto(
Analysis analysis,
QueryStatement queryStatement,
- List<Pair<Expression, String>> outputExpressions) {
+ List<Pair<Expression, String>> outputExpressions,
+ MPPQueryContext context) {
if (!queryStatement.isSelectInto()) {
return;
}
@@ -2109,8 +2112,8 @@ public class AnalyzeVisitor extends
StatementVisitor<Analysis, MPPQueryContext>
// fetch schema of target paths
long startTime = System.nanoTime();
- ISchemaTree targetSchemaTree = schemaFetcher.fetchSchema(targetPathTree,
true, null);
- updateSchemaTreeByViews(analysis, targetSchemaTree);
+ ISchemaTree targetSchemaTree = schemaFetcher.fetchSchema(targetPathTree,
true, context);
+ updateSchemaTreeByViews(analysis, targetSchemaTree, context);
QueryPlanCostMetricSet.getInstance()
.recordPlanCost(SCHEMA_FETCHER, System.nanoTime() - startTime);
intoPathDescriptor.bindType(targetSchemaTree);
@@ -2721,7 +2724,7 @@ public class AnalyzeVisitor extends
StatementVisitor<Analysis, MPPQueryContext>
// request schema fetch API
logger.debug("[StartFetchSchema]");
ISchemaTree schemaTree = schemaFetcher.fetchSchema(patternTree, true,
context);
- updateSchemaTreeByViews(analysis, schemaTree);
+ updateSchemaTreeByViews(analysis, schemaTree, context);
logger.debug("[EndFetchSchema]]");
analyzeLastSource(
@@ -2957,7 +2960,7 @@ public class AnalyzeVisitor extends
StatementVisitor<Analysis, MPPQueryContext>
Set<String> deduplicatedDevicePaths = new HashSet<>();
if (schemaTree.hasLogicalViewMeasurement()) {
- updateSchemaTreeByViews(analysis, schemaTree);
+ updateSchemaTreeByViews(analysis, schemaTree, context);
Set<PartialPath> deletePatternSet = new
HashSet<>(deleteDataStatement.getPathList());
IMeasurementSchema measurementSchema;