This is an automated email from the ASF dual-hosted git repository. jackietien pushed a commit to branch TreeModelDataPartition in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 66073a698bdfa8c7e45aac4b2f66f6ffda6aeab5 Author: JackieTien97 <[email protected]> AuthorDate: Mon Jun 24 16:16:56 2024 +0800 change some --- .../iotdb/db/queryengine/plan/analyze/Analysis.java | 6 +++--- .../iotdb/db/queryengine/plan/analyze/AnalyzeVisitor.java | 15 ++++----------- .../plan/planner/distribution/SourceRewriter.java | 6 ++---- .../java/org/apache/iotdb/commons/utils/PathUtils.java | 4 +--- 4 files changed, 10 insertions(+), 21 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 beb5cf6989f..e9b8f05bf46 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 @@ -181,7 +181,7 @@ public class Analysis implements IAnalysis { private Map<String, Set<Expression>> deviceToOutputExpressions = new HashMap<>(); // map from output device name to queried devices - private Map<String, String> outputDeviceToQueriedDevicesMap; + private Map<String, IDeviceID> outputDeviceToQueriedDevicesMap; // indicates whether DeviceView need special process when rewriteSource in DistributionPlan, // you can see SourceRewriter#visitDeviceView to get more information @@ -892,12 +892,12 @@ public class Analysis implements IAnalysis { this.lastQueryNonWritableViewSourceExpressionMap = lastQueryNonWritableViewSourceExpressionMap; } - public Map<String, String> getOutputDeviceToQueriedDevicesMap() { + public Map<String, IDeviceID> getOutputDeviceToQueriedDevicesMap() { return outputDeviceToQueriedDevicesMap; } public void setOutputDeviceToQueriedDevicesMap( - Map<String, String> outputDeviceToQueriedDevicesMap) { + Map<String, IDeviceID> outputDeviceToQueriedDevicesMap) { this.outputDeviceToQueriedDevicesMap = outputDeviceToQueriedDevicesMap; } 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 b94d0d75e0a..56aaf3f4025 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 @@ -155,7 +155,6 @@ import org.apache.iotdb.rpc.TSStatusCode; import org.apache.thrift.TException; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.file.metadata.IDeviceID; -import org.apache.tsfile.file.metadata.IDeviceID.Factory; import org.apache.tsfile.read.common.TimeRange; import org.apache.tsfile.read.filter.basic.Filter; import org.apache.tsfile.utils.Pair; @@ -1340,16 +1339,14 @@ public class AnalyzeVisitor extends StatementVisitor<Analysis, MPPQueryContext> } } - Map<String, String> outputDeviceToQueriedDevicesMap = new LinkedHashMap<>(); + Map<String, IDeviceID> outputDeviceToQueriedDevicesMap = new LinkedHashMap<>(); for (Map.Entry<String, Set<Expression>> entry : deviceToSourceExpressions.entrySet()) { String deviceName = entry.getKey(); Set<Expression> sourceExpressionsUnderDevice = entry.getValue(); - Set<String> queriedDevices = new HashSet<>(); - // TODO: Change outputDeviceToQueriedDevicesMap to Map<IDeviceID, IDeviceID> to remove + Set<IDeviceID> queriedDevices = new HashSet<>(); // conversion for (Expression expression : sourceExpressionsUnderDevice) { - queriedDevices.add( - ExpressionAnalyzer.getDeviceNameInSourceExpression(expression).toString()); + queriedDevices.add(ExpressionAnalyzer.getDeviceNameInSourceExpression(expression)); } if (queriedDevices.size() > 1) { throw new SemanticException( @@ -1990,12 +1987,8 @@ public class AnalyzeVisitor extends StatementVisitor<Analysis, MPPQueryContext> MPPQueryContext context) { Set<IDeviceID> deviceSet = new HashSet<>(); if (queryStatement.isAlignByDevice()) { - // TODO: change OutputDeviceToQueriedDevicesMap to Map<IDeviceID, IDeviceID> to remove // conversion - deviceSet = - analysis.getOutputDeviceToQueriedDevicesMap().values().stream() - .map(Factory.DEFAULT_FACTORY::create) - .collect(Collectors.toSet()); + deviceSet = new HashSet<>(analysis.getOutputDeviceToQueriedDevicesMap().values()); } else { for (Expression expression : analysis.getSourceExpressions()) { deviceSet.add(ExpressionAnalyzer.getDeviceNameInSourceExpression(expression)); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/SourceRewriter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/SourceRewriter.java index b0337db3022..5af4d55b744 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/SourceRewriter.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/SourceRewriter.java @@ -160,8 +160,7 @@ public class SourceRewriter extends BaseSourceRewriter<DistributionPlanContext> Factory.DEFAULT_FACTORY.create(device), context.getPartitionTimeFilter())) : new ArrayList<>( analysis.getPartitionInfo( - Factory.DEFAULT_FACTORY.create( - analysis.getOutputDeviceToQueriedDevicesMap().get(device)), + analysis.getOutputDeviceToQueriedDevicesMap().get(device), context.getPartitionTimeFilter())); List<PlanNode> singleDeviceViewList = new ArrayList<>(); @@ -206,8 +205,7 @@ public class SourceRewriter extends BaseSourceRewriter<DistributionPlanContext> analysis.useLogicalView() ? new ArrayList<>( analysis.getPartitionInfo( - Factory.DEFAULT_FACTORY.create( - analysis.getOutputDeviceToQueriedDevicesMap().get(outputDevice)), + analysis.getOutputDeviceToQueriedDevicesMap().get(outputDevice), context.getPartitionTimeFilter())) : new ArrayList<>( analysis.getPartitionInfo( diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/utils/PathUtils.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/utils/PathUtils.java index 06d66b2d10d..939be284810 100644 --- a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/utils/PathUtils.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/utils/PathUtils.java @@ -183,9 +183,7 @@ public class PathUtils { } public static boolean isStartWith(IDeviceID deviceID, String storageGroup) { - // TODO: use correct judgement without converting to string - String deviceName = deviceID.toString(); - return deviceName.equals(storageGroup) || deviceName.startsWith(storageGroup + "."); + return deviceID.startWith(storageGroup + "."); } /** Remove the back quotes of a measurement if necessary */
