This is an automated email from the ASF dual-hosted git repository. jackietien pushed a commit to branch ty/TIMECHODB-523 in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit dd311f12aec357fbcdb7fceb8f61bc953cf4ca13 Author: JackieTien97 <[email protected]> AuthorDate: Tue Jan 2 17:00:52 2024 +0800 Fix timeout doesn't take effect in schema fetch bug --- .../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;
