You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by sh...@apache.org on 2026/04/13 04:17:27 UTC
(iotdb) 03/04: move rowpattern
This is an automated email from the ASF dual-hosted git repository.
shuwenwei pushed a commit to branch calc_commons
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 604a7475e645a7adfc001cbf771be1ff82d4f08b
Author: shuwenwei <we...@timecho.com>
AuthorDate: Mon Apr 13 11:23:57 2026 +0800
move rowpattern
---
.../plan/planner/TableOperatorGenerator.java | 72 ++++++++++----------
.../planner/plan/node/ICoreQueryPlanVisitor.java | 79 +++++++++++-----------
.../relational/planner/node/AggregationNode.java | 4 +-
.../relational/planner/node/AssignUniqueId.java | 2 +-
.../plan/relational/planner/node/CollectNode.java | 2 +-
.../planner/node/EnforceSingleRowNode.java | 2 +-
.../plan/relational/planner/node/GapFillNode.java | 2 +-
.../plan/relational/planner/node/GroupNode.java | 2 +-
.../relational/planner/node/LinearFillNode.java | 3 +-
.../relational/planner/node/MarkDistinctNode.java | 2 +-
.../plan/relational/planner/node/Measure.java | 4 +-
.../relational/planner/node/MergeSortNode.java | 2 +-
.../plan/relational/planner/node/OffsetNode.java | 2 +-
.../plan/relational/planner/node/OutputNode.java | 2 +-
.../planner/node/PatternRecognitionNode.java | 10 +--
.../relational/planner/node/PreviousFillNode.java | 3 +-
.../plan/relational/planner/node/ProjectNode.java | 2 +-
.../relational/planner/node/RowNumberNode.java | 2 +-
.../plan/relational/planner/node/SemiJoinNode.java | 2 +-
.../plan/relational/planner/node/SortNode.java | 2 +-
.../relational/planner/node/StreamSortNode.java | 2 +-
.../relational/planner/node/TableFunctionNode.java | 2 +-
.../planner/node/TableFunctionProcessorNode.java | 2 +-
.../plan/relational/planner/node/TopKNode.java | 2 +-
.../relational/planner/node/TopKRankingNode.java | 2 +-
.../plan/relational/planner/node/UnionNode.java | 3 +-
.../relational/planner/node/ValueFillNode.java | 3 +-
.../plan/relational/planner/node/ValuesNode.java | 2 +-
.../plan/relational/planner/node/WindowNode.java | 2 +-
.../rowpattern/AggregationLabelSet.java | 2 +-
.../rowpattern/AggregationValuePointer.java | 2 +-
.../rowpattern/ClassifierValuePointer.java | 2 +-
.../rowpattern/ExpressionAndValuePointers.java | 2 +-
.../rowpattern}/rowpattern/IrAlternation.java | 2 +-
.../planner/rowpattern}/rowpattern/IrAnchor.java | 4 +-
.../rowpattern}/rowpattern/IrConcatenation.java | 2 +-
.../planner/rowpattern}/rowpattern/IrEmpty.java | 2 +-
.../rowpattern}/rowpattern/IrExclusion.java | 2 +-
.../planner/rowpattern}/rowpattern/IrLabel.java | 2 +-
.../rowpattern/IrPatternAlternationOptimizer.java | 4 +-
.../rowpattern}/rowpattern/IrPermutation.java | 2 +-
.../rowpattern}/rowpattern/IrQuantified.java | 2 +-
.../rowpattern}/rowpattern/IrQuantifier.java | 2 +-
.../rowpattern}/rowpattern/IrRowPattern.java | 2 +-
.../rowpattern/IrRowPatternFlattener.java | 2 +-
.../rowpattern/IrRowPatternVisitor.java | 2 +-
.../rowpattern/LogicalIndexPointer.java | 2 +-
.../rowpattern/MatchNumberValuePointer.java | 2 +-
.../planner/rowpattern}/rowpattern/Patterns.java | 12 ++--
.../rowpattern/RowPatternToIrRewriter.java | 12 ++--
.../rowpattern}/rowpattern/ScalarValuePointer.java | 2 +-
.../rowpattern}/rowpattern/ValuePointer.java | 2 +-
.../queryengine/common/header/DatasetHeader.java | 2 +-
.../process/rowpattern/expression/Computation.java | 4 +-
.../matcher/IrRowPatternToProgramRewriter.java | 22 +++---
.../process/window/TopKRankingOperator.java | 2 +-
.../relational/aggregation/TableAggregator.java | 2 +-
.../aggregation/grouped/GroupedAggregator.java | 2 +-
.../grouped/HashAggregationOperator.java | 2 +-
.../grouped/StreamingHashAggregationOperator.java | 2 +-
.../builder/InMemoryHashAggregationBuilder.java | 2 +-
.../planner/DataNodeTableOperatorGenerator.java | 2 +-
.../plan/planner/plan/node/PlanGraphPrinter.java | 60 ++++++++--------
.../plan/planner/plan/node/PlanNodeType.java | 62 ++++++++---------
.../relational/planner/ExpressionExtractor.java | 4 +-
.../plan/relational/planner/PlanBuilder.java | 2 +-
.../plan/relational/planner/QueryPlanner.java | 28 ++++----
.../plan/relational/planner/RelationPlanner.java | 38 +++++------
.../plan/relational/planner/SubqueryPlanner.java | 4 +-
.../plan/relational/planner/SymbolsExtractor.java | 4 +-
.../relational/planner/TableLogicalPlanner.java | 8 +--
.../planner/distribute/AddExchangeNodes.java | 4 +-
.../distribute/TableDistributedPlanGenerator.java | 50 +++++++-------
.../distribute/TableDistributedPlanner.java | 2 +-
.../TableModelTypeProviderExtractor.java | 22 +++---
.../iterative/rule/AggregationDecorrelation.java | 2 +-
.../rule/EliminateLimitProjectWithTableScan.java | 2 +-
.../iterative/rule/EvaluateEmptyIntersect.java | 2 +-
.../iterative/rule/ExpressionRewriteRuleSet.java | 10 +--
.../iterative/rule/GatherAndMergeWindows.java | 4 +-
.../planner/iterative/rule/ImplementExceptAll.java | 2 +-
.../rule/ImplementExceptDistinctAsUnion.java | 2 +-
.../iterative/rule/ImplementIntersectAll.java | 2 +-
.../rule/ImplementIntersectDistinctAsUnion.java | 2 +-
.../rule/ImplementPatternRecognition.java | 4 +-
.../rule/ImplementTableFunctionSource.java | 6 +-
.../planner/iterative/rule/InlineProjections.java | 2 +-
.../rule/MergeLimitOverProjectWithMergeSort.java | 6 +-
.../rule/MergeLimitOverProjectWithSort.java | 8 +--
.../iterative/rule/MergeLimitWithMergeSort.java | 4 +-
.../planner/iterative/rule/MergeLimitWithSort.java | 6 +-
.../planner/iterative/rule/MergeUnion.java | 2 +-
.../MultipleDistinctAggregationToMarkDistinct.java | 4 +-
.../planner/iterative/rule/OptimizeRowPattern.java | 8 +--
.../iterative/rule/ProjectOffPushDownRule.java | 2 +-
.../iterative/rule/PruneAggregationColumns.java | 2 +-
.../rule/PruneAggregationSourceColumns.java | 2 +-
.../iterative/rule/PruneAssignUniqueIdColumns.java | 2 +-
.../iterative/rule/PruneDistinctAggregation.java | 4 +-
.../rule/PruneEnforceSingleRowColumns.java | 2 +-
.../iterative/rule/PruneGapFillColumns.java | 2 +-
.../iterative/rule/PruneMarkDistinctColumns.java | 2 +-
.../planner/iterative/rule/PruneOffsetColumns.java | 2 +-
.../iterative/rule/PruneOutputSourceColumns.java | 2 +-
.../rule/PrunePatternRecognitionSourceColumns.java | 6 +-
.../iterative/rule/PruneProjectColumns.java | 2 +-
.../planner/iterative/rule/PruneSortColumns.java | 2 +-
.../rule/PruneTableFunctionProcessorColumns.java | 4 +-
.../PruneTableFunctionProcessorSourceColumns.java | 4 +-
.../planner/iterative/rule/PruneTopKColumns.java | 2 +-
.../planner/iterative/rule/PruneUnionColumns.java | 2 +-
.../iterative/rule/PruneUnionSourceColumns.java | 2 +-
.../planner/iterative/rule/PruneWindowColumns.java | 2 +-
.../iterative/rule/PushDownFilterIntoWindow.java | 6 +-
.../iterative/rule/PushDownLimitIntoWindow.java | 6 +-
.../rule/PushDownOffsetIntoTableScan.java | 2 +-
.../iterative/rule/PushLimitThroughOffset.java | 2 +-
.../iterative/rule/PushLimitThroughProject.java | 2 +-
.../iterative/rule/PushLimitThroughUnion.java | 2 +-
.../iterative/rule/PushProjectionThroughUnion.java | 4 +-
.../iterative/rule/PushTopKThroughUnion.java | 4 +-
.../iterative/rule/RemoveEmptyExceptBranches.java | 6 +-
.../iterative/rule/RemoveEmptyUnionBranches.java | 4 +-
.../rule/RemoveRedundantEnforceSingleRowNode.java | 2 +-
.../iterative/rule/RemoveRedundantExists.java | 2 +-
.../rule/RemoveRedundantIdentityProjections.java | 2 +-
.../iterative/rule/RemoveRedundantWindow.java | 4 +-
.../iterative/rule/ReplaceWindowWithRowNumber.java | 4 +-
.../planner/iterative/rule/SetOperationMerge.java | 2 +-
.../iterative/rule/SetOperationNodeTranslator.java | 12 ++--
.../iterative/rule/SimplifyCountOverConstant.java | 4 +-
.../rule/SingleDistinctAggregationToGroupBy.java | 6 +-
...orrelatedDistinctAggregationWithProjection.java | 8 +--
...elatedDistinctAggregationWithoutProjection.java | 6 +-
...mCorrelatedGlobalAggregationWithProjection.java | 8 +--
...rrelatedGlobalAggregationWithoutProjection.java | 8 +--
...CorrelatedGroupedAggregationWithProjection.java | 8 +--
...relatedGroupedAggregationWithoutProjection.java | 6 +-
.../rule/TransformCorrelatedScalarSubquery.java | 8 +--
.../rule/TransformExistsApplyToCorrelatedJoin.java | 8 +--
.../TransformFilteringSemiJoinToInnerJoin.java | 8 +--
...mUncorrelatedInPredicateSubqueryToSemiJoin.java | 2 +-
.../rule/TransformUncorrelatedSubqueryToJoin.java | 2 +-
.../relational/planner/iterative/rule/Util.java | 10 +--
.../planner/node/AggregationTableScanNode.java | 2 +
.../node/AggregationTreeDeviceViewScanNode.java | 1 +
.../AlignedAggregationTreeDeviceViewScanNode.java | 1 +
...onAlignedAggregationTreeDeviceViewScanNode.java | 1 +
.../plan/relational/planner/node/Patterns.java | 20 ++++++
.../planner/optimizations/ParallelizeGrouping.java | 16 ++---
.../optimizations/PlanNodeDecorrelator.java | 10 +--
.../PushAggregationIntoTableScan.java | 4 +-
.../PushLimitOffsetIntoTableScan.java | 20 +++---
.../optimizations/PushPredicateIntoTableScan.java | 12 ++--
.../optimizations/QueryCardinalityUtil.java | 10 +--
.../planner/optimizations/SortElimination.java | 12 ++--
.../planner/optimizations/SymbolMapper.java | 30 ++++----
.../TransformAggregationToStreamable.java | 14 ++--
...mQuantifiedComparisonApplyToCorrelatedJoin.java | 8 +--
.../optimizations/TransformSortToStreamSort.java | 10 +--
.../optimizations/UnaliasSymbolReferences.java | 44 ++++++------
.../relational/planner/optimizations/Util.java | 10 +--
.../rowpattern/IrRowPatternOptimizationTest.java | 26 +++----
.../operator/process/rowpattern/MatcherTest.java | 22 +++---
.../process/window/TopKRankingOperatorTest.java | 2 +-
.../planner/node/process/WindowNodeSerdeTest.java | 2 +-
.../analyzer/AggregationCornerCaseTest.java | 2 +-
.../plan/relational/analyzer/AggregationTest.java | 8 +--
.../plan/relational/analyzer/AnalyzerTest.java | 8 +--
.../plan/relational/analyzer/DistinctTest.java | 2 +-
.../relational/analyzer/InsertIntoQueryTest.java | 6 +-
.../plan/relational/analyzer/JoinTest.java | 16 ++---
.../analyzer/LimitOffsetPushDownTest.java | 8 +--
.../analyzer/PushAggregationThroughUnionTest.java | 4 +-
.../plan/relational/analyzer/SortTest.java | 12 ++--
.../plan/relational/analyzer/SubQueryTest.java | 10 +--
.../plan/relational/analyzer/TSBSTest.java | 8 +--
.../plan/relational/analyzer/TestPlanBuilder.java | 6 +-
.../plan/relational/analyzer/TestUtils.java | 4 +-
.../plan/relational/analyzer/TreeViewTest.java | 6 +-
.../relational/planner/CorrelatedSubqueryTest.java | 2 +-
.../relational/planner/CteMaterializerTest.java | 2 +-
.../planner/PatternRecognitionNodeSerdeTest.java | 22 +++---
.../planner/UncorrelatedSubqueryTest.java | 6 +-
.../AggregationDeviceTableScanMatcher.java | 2 +-
.../assertions/AggregationFunctionMatcher.java | 2 +-
.../planner/assertions/AggregationMatcher.java | 2 +-
.../planner/assertions/AggregationStepMatcher.java | 2 +-
.../planner/assertions/AssignUniqueIdMatcher.java | 2 +-
.../planner/assertions/ExpressionMatcher.java | 2 +-
.../planner/assertions/GroupMatcher.java | 2 +-
.../assertions/IdentityProjectionMatcher.java | 2 +-
.../planner/assertions/MarkDistinctMatcher.java | 2 +-
.../planner/assertions/OffsetMatcher.java | 2 +-
.../planner/assertions/PlanMatchPattern.java | 38 +++++------
.../planner/assertions/PlanMatchingVisitor.java | 2 +-
.../planner/assertions/SemiJoinMatcher.java | 2 +-
.../relational/planner/assertions/SortMatcher.java | 2 +-
.../assertions/StrictAssignedSymbolsMatcher.java | 2 +-
.../assertions/TableFunctionProcessorMatcher.java | 2 +-
.../relational/planner/assertions/TopKMatcher.java | 2 +-
.../planner/assertions/WindowFunctionMatcher.java | 2 +-
202 files changed, 703 insertions(+), 683 deletions(-)
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/calc_commons/plan/planner/TableOperatorGenerator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/calc_commons/plan/planner/TableOperatorGenerator.java
index 09ef349094d..c199e7ebb0a 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/calc_commons/plan/planner/TableOperatorGenerator.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/calc_commons/plan/planner/TableOperatorGenerator.java
@@ -24,9 +24,45 @@ import org.apache.iotdb.db.exception.sql.SemanticException;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.ICoreQueryPlanVisitor;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.process.SingleChildProcessNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AssignUniqueId;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.CollectNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.EnforceSingleRowNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FilterNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.GapFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.GroupNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LimitNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LinearFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.MarkDistinctNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.Measure;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.MergeSortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OffsetNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OutputNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.PatternRecognitionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.PreviousFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.RowNumberNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SemiJoinNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.StreamSortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TableFunctionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TableFunctionProcessorNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKRankingNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.UnionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ValueFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ValuesNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.WindowNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.AggregationLabelSet;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.AggregationValuePointer;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.ClassifierValuePointer;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.ExpressionAndValuePointers;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrLabel;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.LogicalIndexPointer;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.MatchNumberValuePointer;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.ScalarValuePointer;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.ValuePointer;
import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext;
import org.apache.iotdb.db.queryengine.execution.operator.Operator;
import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext;
@@ -122,43 +158,7 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.CastToTimestampLi
import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme;
import org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CollectNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CteScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.EnforceSingleRowNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GapFillNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GroupNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LinearFillNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MarkDistinctNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Measure;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MergeSortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PatternRecognitionNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PreviousFillNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.RowNumberNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SemiJoinNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionProcessorNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKRankingNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValueFillNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValuesNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.AggregationLabelSet;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.AggregationValuePointer;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ClassifierValuePointer;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrLabel;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.LogicalIndexPointer;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.MatchNumberValuePointer;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ScalarValuePointer;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ValuePointer;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/planner/plan/node/ICoreQueryPlanVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/planner/plan/node/ICoreQueryPlanVisitor.java
index 25830cc63ea..550b358b462 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/planner/plan/node/ICoreQueryPlanVisitor.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/planner/plan/node/ICoreQueryPlanVisitor.java
@@ -16,30 +16,42 @@ package org.apache.iotdb.db.node_commons.plan.planner.plan.node;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.process.MultiChildProcessNode;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.process.SingleChildProcessNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AssignUniqueId;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.CollectNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.EnforceSingleRowNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FillNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FilterNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.GapFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.GroupNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LimitNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LinearFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.MarkDistinctNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.MergeSortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OffsetNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OutputNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.PatternRecognitionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.PreviousFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.RowNumberNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SemiJoinNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.StreamSortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TableFunctionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TableFunctionProcessorNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKRankingNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.UnionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ValueFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ValuesNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.TwoChildProcessNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SourceNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.GroupReference;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CteScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExceptNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GapFillNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GroupNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntersectNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LinearFillNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MarkDistinctNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PatternRecognitionNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PreviousFillNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.RowNumberNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SemiJoinNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionProcessorNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValueFillNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValuesNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode;
public interface ICoreQueryPlanVisitor<R, C> extends IPlanVisitor<R, C> {
@@ -85,14 +97,11 @@ public interface ICoreQueryPlanVisitor<R, C> extends IPlanVisitor<R, C> {
return visitTwoChildProcess(node, context);
}
- default R visitAssignUniqueId(
- org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId node, C context) {
+ default R visitAssignUniqueId(AssignUniqueId node, C context) {
return visitSingleChildProcess(node, context);
}
- default R visitEnforceSingleRow(
- org.apache.iotdb.db.queryengine.plan.relational.planner.node.EnforceSingleRowNode node,
- C context) {
+ default R visitEnforceSingleRow(EnforceSingleRowNode node, C context) {
return visitSingleChildProcess(node, context);
}
@@ -102,8 +111,7 @@ public interface ICoreQueryPlanVisitor<R, C> extends IPlanVisitor<R, C> {
return visitTwoChildProcess(node, context);
}
- default R visitProject(
- org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode node, C context) {
+ default R visitProject(ProjectNode node, C context) {
return visitSingleChildProcess(node, context);
}
@@ -111,23 +119,19 @@ public interface ICoreQueryPlanVisitor<R, C> extends IPlanVisitor<R, C> {
return visitSingleChildProcess(node, context);
}
- default R visitOffset(
- org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode node, C context) {
+ default R visitOffset(OffsetNode node, C context) {
return visitSingleChildProcess(node, context);
}
- default R visitMergeSort(
- org.apache.iotdb.db.queryengine.plan.relational.planner.node.MergeSortNode node, C context) {
+ default R visitMergeSort(MergeSortNode node, C context) {
return visitMultiChildProcess(node, context);
}
- default R visitOutput(
- org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode node, C context) {
+ default R visitOutput(OutputNode node, C context) {
return visitSingleChildProcess(node, context);
}
- default R visitCollect(
- org.apache.iotdb.db.queryengine.plan.relational.planner.node.CollectNode node, C context) {
+ default R visitCollect(CollectNode node, C context) {
return visitMultiChildProcess(node, context);
}
@@ -151,13 +155,11 @@ public interface ICoreQueryPlanVisitor<R, C> extends IPlanVisitor<R, C> {
return visitFill(node, context);
}
- default R visitSort(
- org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode node, C context) {
+ default R visitSort(SortNode node, C context) {
return visitSingleChildProcess(node, context);
}
- default R visitStreamSort(
- org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode node, C context) {
+ default R visitStreamSort(StreamSortNode node, C context) {
return visitSingleChildProcess(node, context);
}
@@ -165,14 +167,11 @@ public interface ICoreQueryPlanVisitor<R, C> extends IPlanVisitor<R, C> {
return visitSingleChildProcess(node, context);
}
- default R visitTopK(
- org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode node, C context) {
+ default R visitTopK(TopKNode node, C context) {
return visitMultiChildProcess(node, context);
}
- default R visitTopKRanking(
- org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKRankingNode node,
- C context) {
+ default R visitTopKRanking(TopKRankingNode node, C context) {
return visitSingleChildProcess(node, context);
}
@@ -196,9 +195,7 @@ public interface ICoreQueryPlanVisitor<R, C> extends IPlanVisitor<R, C> {
return visitPlan(node, context);
}
- default R visitAggregation(
- org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode node,
- C context) {
+ default R visitAggregation(AggregationNode node, C context) {
return visitSingleChildProcess(node, context);
}
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AggregationNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/AggregationNode.java
similarity index 99%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AggregationNode.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/AggregationNode.java
index 229c91cfd94..a7ebbc90f60 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AggregationNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/AggregationNode.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.node;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.IPlanVisitor;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
@@ -604,7 +604,7 @@ public class AggregationNode extends SingleChildProcessNode {
return Objects.hash(resolvedFunction, arguments, distinct, filter, orderingScheme, mask);
}
- void verifyArguments(Step step) {
+ public void verifyArguments(Step step) {
int expectedArgumentCount;
if (step == Step.SINGLE || step == Step.PARTIAL) {
expectedArgumentCount = resolvedFunction.getSignature().getArgumentTypes().size();
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AssignUniqueId.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/AssignUniqueId.java
similarity index 97%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AssignUniqueId.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/AssignUniqueId.java
index bb439595084..251b242e0a5 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AssignUniqueId.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/AssignUniqueId.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.node;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.IPlanVisitor;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/CollectNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/CollectNode.java
similarity index 98%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/CollectNode.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/CollectNode.java
index a6707f84bed..aac3be39dd4 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/CollectNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/CollectNode.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.node;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.IPlanVisitor;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/EnforceSingleRowNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/EnforceSingleRowNode.java
similarity index 97%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/EnforceSingleRowNode.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/EnforceSingleRowNode.java
index 154a04204be..6fe7f60af3b 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/EnforceSingleRowNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/EnforceSingleRowNode.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.node;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.IPlanVisitor;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/GapFillNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/GapFillNode.java
similarity index 99%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/GapFillNode.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/GapFillNode.java
index f94a7e45ee9..bfa59c8acb5 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/GapFillNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/GapFillNode.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.node;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.IPlanVisitor;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/GroupNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/GroupNode.java
similarity index 98%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/GroupNode.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/GroupNode.java
index 94ec6f1aa5e..878ded203be 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/GroupNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/GroupNode.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.node;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.IPlanVisitor;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/LinearFillNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/LinearFillNode.java
similarity index 96%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/LinearFillNode.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/LinearFillNode.java
index 24b2d0b965a..aec04bbacfc 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/LinearFillNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/LinearFillNode.java
@@ -17,11 +17,10 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.node;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.IPlanVisitor;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
-import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FillNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/MarkDistinctNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/MarkDistinctNode.java
similarity index 98%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/MarkDistinctNode.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/MarkDistinctNode.java
index 8a2b89c972e..c179c236779 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/MarkDistinctNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/MarkDistinctNode.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.node;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.IPlanVisitor;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/Measure.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/Measure.java
similarity index 94%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/Measure.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/Measure.java
index 273f7e82902..232aa50dc95 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/Measure.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/Measure.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.node;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.ExpressionAndValuePointers;
import org.apache.iotdb.db.queryengine.plan.relational.utils.TypeUtil;
import org.apache.tsfile.read.common.type.Type;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/MergeSortNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/MergeSortNode.java
similarity index 98%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/MergeSortNode.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/MergeSortNode.java
index 42e65bb8d69..8655c332435 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/MergeSortNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/MergeSortNode.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.node;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.IPlanVisitor;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/OffsetNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/OffsetNode.java
similarity index 98%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/OffsetNode.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/OffsetNode.java
index 79b28799589..3685ac09b52 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/OffsetNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/OffsetNode.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.node;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.IPlanVisitor;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/OutputNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/OutputNode.java
similarity index 98%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/OutputNode.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/OutputNode.java
index 562af0ac9ed..78c39a61c9f 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/OutputNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/OutputNode.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.node;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.IPlanVisitor;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/PatternRecognitionNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/PatternRecognitionNode.java
similarity index 95%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/PatternRecognitionNode.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/PatternRecognitionNode.java
index 013d3b35cf0..e8f3dcb1f34 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/PatternRecognitionNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/PatternRecognitionNode.java
@@ -17,19 +17,21 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.node;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.IPlanVisitor;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.process.SingleChildProcessNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.ExpressionAndValuePointers;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrLabel;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrRowPattern;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor;
import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrLabel;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrRowPattern;
+import org.apache.iotdb.db.queryengine.plan.relational.planner.node.RowsPerMatch;
+import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SkipToPosition;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/PreviousFillNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/PreviousFillNode.java
similarity index 97%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/PreviousFillNode.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/PreviousFillNode.java
index 47a7f3f3e1d..cf15c232d1c 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/PreviousFillNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/PreviousFillNode.java
@@ -17,11 +17,10 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.node;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.IPlanVisitor;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
-import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FillNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ProjectNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/ProjectNode.java
similarity index 98%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ProjectNode.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/ProjectNode.java
index 675dab2b99b..ae2250a80a2 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ProjectNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/ProjectNode.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.node;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.IPlanVisitor;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/RowNumberNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/RowNumberNode.java
similarity index 99%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/RowNumberNode.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/RowNumberNode.java
index 0b6eb585f78..7387f578c2f 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/RowNumberNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/RowNumberNode.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.node;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.IPlanVisitor;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/SemiJoinNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/SemiJoinNode.java
similarity index 98%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/SemiJoinNode.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/SemiJoinNode.java
index 2a09594f0bc..9a6fadc2c92 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/SemiJoinNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/SemiJoinNode.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.node;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.IPlanVisitor;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/SortNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/SortNode.java
similarity index 98%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/SortNode.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/SortNode.java
index 5e9e55531c2..f0f50147cf7 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/SortNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/SortNode.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.node;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.IPlanVisitor;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/StreamSortNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/StreamSortNode.java
similarity index 98%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/StreamSortNode.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/StreamSortNode.java
index 251c0084b13..4f20385ebf9 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/StreamSortNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/StreamSortNode.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.node;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.IPlanVisitor;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TableFunctionNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/TableFunctionNode.java
similarity index 99%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TableFunctionNode.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/TableFunctionNode.java
index bc05ccf7e65..b0d070206ae 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TableFunctionNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/TableFunctionNode.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.node;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.IPlanVisitor;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TableFunctionProcessorNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/TableFunctionProcessorNode.java
similarity index 99%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TableFunctionProcessorNode.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/TableFunctionProcessorNode.java
index 1225f6a2416..1617397e12f 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TableFunctionProcessorNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/TableFunctionProcessorNode.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.node;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.IPlanVisitor;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TopKNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/TopKNode.java
similarity index 98%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TopKNode.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/TopKNode.java
index 313bf9ad61b..81e5227fab1 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TopKNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/TopKNode.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.node;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.IPlanVisitor;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TopKRankingNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/TopKRankingNode.java
similarity index 98%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TopKRankingNode.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/TopKRankingNode.java
index d1f5bd11220..9c133af4c7d 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TopKRankingNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/TopKRankingNode.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.node;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.IPlanVisitor;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/UnionNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/UnionNode.java
similarity index 96%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/UnionNode.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/UnionNode.java
index 884d0fe4f56..1519f84add8 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/UnionNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/UnionNode.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.node;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.IPlanVisitor;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
@@ -25,6 +25,7 @@ import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
+import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SetOperationNode;
import com.google.common.collect.ImmutableListMultimap;
import com.google.common.collect.ListMultimap;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ValueFillNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/ValueFillNode.java
similarity index 95%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ValueFillNode.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/ValueFillNode.java
index 47054cec345..41b837b3da5 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ValueFillNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/ValueFillNode.java
@@ -17,11 +17,10 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.node;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.IPlanVisitor;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
-import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FillNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ValuesNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/ValuesNode.java
similarity index 99%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ValuesNode.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/ValuesNode.java
index d2190b2b75f..8958a0146c6 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ValuesNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/ValuesNode.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.node;
import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.IPlanVisitor;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/WindowNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/WindowNode.java
similarity index 99%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/WindowNode.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/WindowNode.java
index b9799a0282d..9658567723c 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/WindowNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/WindowNode.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.node;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.IPlanVisitor;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/AggregationLabelSet.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/AggregationLabelSet.java
similarity index 97%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/AggregationLabelSet.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/AggregationLabelSet.java
index f002f3d0c1a..bca2655aa81 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/AggregationLabelSet.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/AggregationLabelSet.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern;
import java.io.DataOutputStream;
import java.io.IOException;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/AggregationValuePointer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/AggregationValuePointer.java
similarity index 98%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/AggregationValuePointer.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/AggregationValuePointer.java
index 3636e2673db..30854d3c05e 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/AggregationValuePointer.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/AggregationValuePointer.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.ResolvedFunction;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/ClassifierValuePointer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/ClassifierValuePointer.java
similarity index 96%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/ClassifierValuePointer.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/ClassifierValuePointer.java
index a06d3b32f4f..1afb334bdd4 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/ClassifierValuePointer.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/ClassifierValuePointer.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern;
import java.io.DataOutputStream;
import java.io.IOException;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/ExpressionAndValuePointers.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/ExpressionAndValuePointers.java
similarity index 99%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/ExpressionAndValuePointers.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/ExpressionAndValuePointers.java
index 288fae8fca3..df454b44bb8 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/ExpressionAndValuePointers.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/ExpressionAndValuePointers.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrAlternation.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrAlternation.java
similarity index 97%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrAlternation.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrAlternation.java
index f698b923f2a..d2affb2b2d3 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrAlternation.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrAlternation.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern;
import org.apache.tsfile.utils.ReadWriteIOUtils;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrAnchor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrAnchor.java
similarity index 91%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrAnchor.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrAnchor.java
index 5c665152358..ec0d216c81a 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrAnchor.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrAnchor.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern;
import org.apache.tsfile.utils.ReadWriteIOUtils;
@@ -27,7 +27,7 @@ import java.nio.ByteBuffer;
import java.util.Objects;
import static java.util.Objects.requireNonNull;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrAnchor.Type.PARTITION_START;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrAnchor.Type.PARTITION_START;
public class IrAnchor extends IrRowPattern {
public enum Type {
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrConcatenation.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrConcatenation.java
similarity index 97%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrConcatenation.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrConcatenation.java
index e846ce2a540..49d37c3ee23 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrConcatenation.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrConcatenation.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern;
import org.apache.tsfile.utils.ReadWriteIOUtils;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrEmpty.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrEmpty.java
similarity index 95%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrEmpty.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrEmpty.java
index ba1c4143c29..28edcf80495 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrEmpty.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrEmpty.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern;
import java.io.DataOutputStream;
import java.io.IOException;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrExclusion.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrExclusion.java
similarity index 96%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrExclusion.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrExclusion.java
index abd784d147b..5c5cca9493b 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrExclusion.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrExclusion.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern;
import java.io.DataOutputStream;
import java.io.IOException;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrLabel.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrLabel.java
similarity index 96%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrLabel.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrLabel.java
index 35fb1b10a45..9534d054349 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrLabel.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrLabel.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern;
import org.apache.tsfile.utils.ReadWriteIOUtils;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrPatternAlternationOptimizer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrPatternAlternationOptimizer.java
similarity index 95%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrPatternAlternationOptimizer.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrPatternAlternationOptimizer.java
index ccb4e9a89f3..9cad8c5bd68 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrPatternAlternationOptimizer.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrPatternAlternationOptimizer.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern;
import com.google.common.collect.ImmutableList;
@@ -25,7 +25,7 @@ import java.util.List;
import static com.google.common.base.Preconditions.checkState;
import static com.google.common.collect.ImmutableList.toImmutableList;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrQuantifier.zeroOrOne;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrQuantifier.zeroOrOne;
/**
* Remove empty pattern from pattern alternation and replace it with quantification of a
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrPermutation.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrPermutation.java
similarity index 97%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrPermutation.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrPermutation.java
index 5367f9dd026..a781fab5e33 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrPermutation.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrPermutation.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern;
import org.apache.tsfile.utils.ReadWriteIOUtils;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrQuantified.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrQuantified.java
similarity index 96%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrQuantified.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrQuantified.java
index 6031bf64302..3ae19567096 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrQuantified.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrQuantified.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern;
import java.io.DataOutputStream;
import java.io.IOException;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrQuantifier.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrQuantifier.java
similarity index 97%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrQuantifier.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrQuantifier.java
index 709e23e7722..1d8ff1b246f 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrQuantifier.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrQuantifier.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern;
import org.apache.tsfile.utils.ReadWriteIOUtils;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrRowPattern.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrRowPattern.java
similarity index 98%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrRowPattern.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrRowPattern.java
index 35a6597c52f..fa60530eee8 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrRowPattern.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrRowPattern.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern;
import org.apache.iotdb.db.exception.sql.SemanticException;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrRowPatternFlattener.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrRowPatternFlattener.java
similarity index 98%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrRowPatternFlattener.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrRowPatternFlattener.java
index 98f7c1c8852..5fecb723f19 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrRowPatternFlattener.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrRowPatternFlattener.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern;
import java.util.List;
import java.util.Optional;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrRowPatternVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrRowPatternVisitor.java
similarity index 95%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrRowPatternVisitor.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrRowPatternVisitor.java
index 4e2ec9b830c..f4cdf024fea 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrRowPatternVisitor.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/IrRowPatternVisitor.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern;
import javax.annotation.Nullable;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/LogicalIndexPointer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/LogicalIndexPointer.java
similarity index 98%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/LogicalIndexPointer.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/LogicalIndexPointer.java
index 7660f00492d..1dee70133b5 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/LogicalIndexPointer.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/LogicalIndexPointer.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern;
import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.LogicalIndexNavigation;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/MatchNumberValuePointer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/MatchNumberValuePointer.java
similarity index 94%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/MatchNumberValuePointer.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/MatchNumberValuePointer.java
index d75dc9e5133..eb4ee668c74 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/MatchNumberValuePointer.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/MatchNumberValuePointer.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern;
import java.io.DataOutputStream;
import java.io.IOException;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/Patterns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/Patterns.java
similarity index 77%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/Patterns.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/Patterns.java
index e46f918c2f8..127bb1ea46d 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/Patterns.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/Patterns.java
@@ -17,17 +17,17 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern;
import com.google.common.collect.ImmutableList;
import java.util.Optional;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrAnchor.Type.PARTITION_END;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrAnchor.Type.PARTITION_START;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrQuantifier.oneOrMore;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrQuantifier.zeroOrMore;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrQuantifier.zeroOrOne;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrAnchor.Type.PARTITION_END;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrAnchor.Type.PARTITION_START;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrQuantifier.oneOrMore;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrQuantifier.zeroOrMore;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrQuantifier.zeroOrOne;
public class Patterns {
private Patterns() {}
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/RowPatternToIrRewriter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/RowPatternToIrRewriter.java
similarity index 89%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/RowPatternToIrRewriter.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/RowPatternToIrRewriter.java
index ed93c990039..7761b742dbf 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/RowPatternToIrRewriter.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/RowPatternToIrRewriter.java
@@ -17,11 +17,11 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrAnchor.Type;
import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis;
import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis.Range;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrAnchor.Type;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AnchorPattern;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.EmptyPattern;
@@ -42,10 +42,10 @@ import java.util.List;
import static com.google.common.collect.ImmutableList.toImmutableList;
import static java.util.Objects.requireNonNull;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrQuantifier.oneOrMore;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrQuantifier.range;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrQuantifier.zeroOrMore;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrQuantifier.zeroOrOne;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrQuantifier.oneOrMore;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrQuantifier.range;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrQuantifier.zeroOrMore;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrQuantifier.zeroOrOne;
public class RowPatternToIrRewriter extends AstVisitor<IrRowPattern, Void> {
private final Analysis analysis;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/ScalarValuePointer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/ScalarValuePointer.java
similarity index 97%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/ScalarValuePointer.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/ScalarValuePointer.java
index 5957242d97d..8e6cb7e749f 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/ScalarValuePointer.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/ScalarValuePointer.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/ValuePointer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/ValuePointer.java
similarity index 87%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/ValuePointer.java
rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/ValuePointer.java
index 1b73e62a724..2f35d1e7406 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/ValuePointer.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/rowpattern/rowpattern/ValuePointer.java
@@ -12,6 +12,6 @@
* limitations under the License.
*/
-package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern;
+package org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern;
public interface ValuePointer {}
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/header/DatasetHeader.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/header/DatasetHeader.java
index a72c4d00bef..88dd48b8ff7 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/header/DatasetHeader.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/header/DatasetHeader.java
@@ -20,8 +20,8 @@
package org.apache.iotdb.db.queryengine.common.header;
import org.apache.iotdb.commons.schema.column.ColumnHeader;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OutputNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode;
import com.google.common.primitives.Bytes;
import org.apache.tsfile.enums.TSDataType;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/Computation.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/Computation.java
index 33661fd206a..46d87b886be 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/Computation.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/Computation.java
@@ -20,8 +20,8 @@
package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.expression;
import org.apache.iotdb.db.exception.sql.SemanticException;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers.Assignment;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.ExpressionAndValuePointers;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.ExpressionAndValuePointers.Assignment;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BinaryLiteral;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/IrRowPatternToProgramRewriter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/IrRowPatternToProgramRewriter.java
index 37de296d54c..70d1253e71c 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/IrRowPatternToProgramRewriter.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/IrRowPatternToProgramRewriter.java
@@ -19,17 +19,17 @@
package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrAlternation;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrAnchor;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrConcatenation;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrEmpty;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrExclusion;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrLabel;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrPermutation;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrQuantified;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrQuantifier;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrRowPattern;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrRowPatternVisitor;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrAlternation;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrAnchor;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrConcatenation;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrEmpty;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrExclusion;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrLabel;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrPermutation;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrQuantified;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrQuantifier;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrRowPattern;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrRowPatternVisitor;
import java.util.ArrayList;
import java.util.List;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/TopKRankingOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/TopKRankingOperator.java
index b94c546ac54..95bb2fcd568 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/TopKRankingOperator.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/TopKRankingOperator.java
@@ -19,6 +19,7 @@
package org.apache.iotdb.db.queryengine.execution.operator.process.window;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKRankingNode;
import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper;
import org.apache.iotdb.db.queryengine.execution.operator.GroupedTopNBuilder;
import org.apache.iotdb.db.queryengine.execution.operator.GroupedTopNRowNumberBuilder;
@@ -31,7 +32,6 @@ import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggr
import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash.GroupByHash;
import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash.NoChannelGroupByHash;
import org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKRankingNode;
import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager;
import com.google.common.base.Supplier;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/TableAggregator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/TableAggregator.java
index 955532cea6d..9c18dd1b42d 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/TableAggregator.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/TableAggregator.java
@@ -19,7 +19,7 @@
package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
import com.google.common.primitives.Ints;
import org.apache.tsfile.block.column.Column;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedAggregator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedAggregator.java
index e416d4f43f0..50034a9dfba 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedAggregator.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedAggregator.java
@@ -19,8 +19,8 @@
package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AggregationMask;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
import com.google.common.primitives.Ints;
import org.apache.tsfile.block.column.Column;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/HashAggregationOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/HashAggregationOperator.java
index ce7e91f8448..f6c1e9f2d7b 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/HashAggregationOperator.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/HashAggregationOperator.java
@@ -19,6 +19,7 @@
package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper;
import org.apache.iotdb.db.queryengine.execution.operator.AbstractOperator;
import org.apache.iotdb.db.queryengine.execution.operator.Operator;
@@ -26,7 +27,6 @@ import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext;
import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.builder.HashAggregationBuilder;
import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.builder.InMemoryHashAggregationBuilder;
import org.apache.iotdb.db.queryengine.plan.planner.memory.MemoryReservationManager;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
import com.google.common.collect.ImmutableList;
import com.google.common.util.concurrent.ListenableFuture;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/StreamingHashAggregationOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/StreamingHashAggregationOperator.java
index ee58c827e46..a1772e2d231 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/StreamingHashAggregationOperator.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/StreamingHashAggregationOperator.java
@@ -19,6 +19,7 @@
package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper;
import org.apache.iotdb.db.queryengine.execution.operator.AbstractOperator;
import org.apache.iotdb.db.queryengine.execution.operator.Operator;
@@ -26,7 +27,6 @@ import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext;
import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.builder.HashAggregationBuilder;
import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.builder.InMemoryHashAggregationBuilder;
import org.apache.iotdb.db.queryengine.plan.planner.memory.MemoryReservationManager;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.utils.datastructure.SortKey;
import com.google.common.primitives.Ints;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/builder/InMemoryHashAggregationBuilder.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/builder/InMemoryHashAggregationBuilder.java
index 3103055023b..fbe0cee4098 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/builder/InMemoryHashAggregationBuilder.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/builder/InMemoryHashAggregationBuilder.java
@@ -19,12 +19,12 @@
package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.builder;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext;
import org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator;
import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.GroupedAggregator;
import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.UpdateMemory;
import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash.GroupByHash;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager;
import com.google.common.collect.ImmutableList;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/DataNodeTableOperatorGenerator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/DataNodeTableOperatorGenerator.java
index 759058fde31..a392558428e 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/DataNodeTableOperatorGenerator.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/DataNodeTableOperatorGenerator.java
@@ -25,6 +25,7 @@ import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory;
import org.apache.iotdb.commons.schema.table.column.TsTableColumnSchema;
import org.apache.iotdb.db.calc_commons.plan.planner.TableOperatorGenerator;
import org.apache.iotdb.db.exception.sql.SemanticException;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.common.FragmentInstanceId;
import org.apache.iotdb.db.queryengine.execution.aggregation.timerangeiterator.ITableTimeRangeIterator;
import org.apache.iotdb.db.queryengine.execution.aggregation.timerangeiterator.TableDateBinTimeRangeIterator;
@@ -96,7 +97,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.cache.Ta
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolsExtractor;
import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTreeDeviceViewScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AlignedAggregationTreeDeviceViewScanNode;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanGraphPrinter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanGraphPrinter.java
index 8b7811f7283..645b23b9db1 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanGraphPrinter.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanGraphPrinter.java
@@ -23,7 +23,25 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet;
import org.apache.iotdb.commons.conf.CommonDescriptor;
import org.apache.iotdb.commons.partition.DataPartition;
import org.apache.iotdb.commons.path.PartialPath;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AssignUniqueId;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.EnforceSingleRowNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.GapFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.GroupNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LinearFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.MarkDistinctNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OutputNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.PatternRecognitionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.PreviousFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.RowNumberNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SemiJoinNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.StreamSortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TableFunctionProcessorNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKRankingNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.UnionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ValueFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ValuesNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.plan.analyze.TemplatedInfo;
import org.apache.iotdb.db.queryengine.plan.expression.Expression;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.AggregationMergeSortNode;
@@ -70,32 +88,16 @@ import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.IntoPathDescr
import org.apache.iotdb.db.queryengine.plan.relational.planner.DataOrganizationSpecification;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTreeDeviceViewScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CteScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.EnforceSingleRowNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExceptNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExplainAnalyzeNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GapFillNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GroupNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntersectNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LinearFillNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MarkDistinctNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PatternRecognitionNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PreviousFillNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.RowNumberNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SemiJoinNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableDiskUsageInformationSchemaTableScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionProcessorNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKRankingNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeDeviceViewScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValueFillNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValuesNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode;
import com.google.common.base.Joiner;
import org.apache.tsfile.external.commons.lang3.Validate;
@@ -715,13 +717,13 @@ public class PlanGraphPrinter implements PlanVisitor<List<String>, PlanGraphPrin
@Override
public List<String> visitAggregation(
- org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode node,
+ org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode node,
GraphContext context) {
List<String> boxValue = new ArrayList<>();
boxValue.add(String.format("Aggregation-%s", node.getPlanNodeId().getId()));
boxValue.add(String.format("OutputSymbols: %s", node.getOutputSymbols()));
int i = 0;
- for (org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Aggregation
+ for (org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.Aggregation
aggregation : node.getAggregations().values()) {
StringBuilder aggregator =
new StringBuilder(
@@ -754,7 +756,7 @@ public class PlanGraphPrinter implements PlanVisitor<List<String>, PlanGraphPrin
boxValue.add(String.format("QualifiedTableName: %s", node.getQualifiedObjectName().toString()));
boxValue.add(String.format("OutputSymbols: %s", node.getOutputSymbols()));
int i = 0;
- for (org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Aggregation
+ for (org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.Aggregation
aggregation : node.getAggregations().values()) {
StringBuilder aggregator =
new StringBuilder(
@@ -831,7 +833,7 @@ public class PlanGraphPrinter implements PlanVisitor<List<String>, PlanGraphPrin
@Override
public List<String> visitProject(
- org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode node,
+ org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode node,
GraphContext context) {
List<String> boxValue = new ArrayList<>();
boxValue.add(String.format("Project-%s", node.getPlanNodeId().getId()));
@@ -851,9 +853,7 @@ public class PlanGraphPrinter implements PlanVisitor<List<String>, PlanGraphPrin
}
@Override
- public List<String> visitOutput(
- org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode node,
- GraphContext context) {
+ public List<String> visitOutput(OutputNode node, GraphContext context) {
List<String> boxValue = new ArrayList<>();
boxValue.add(String.format("OutputNode-%s", node.getPlanNodeId().getId()));
boxValue.add(String.format("OutputColumns-%s", node.getOutputColumnNames()));
@@ -948,7 +948,7 @@ public class PlanGraphPrinter implements PlanVisitor<List<String>, PlanGraphPrin
@Override
public List<String> visitOffset(
- org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode node,
+ org.apache.iotdb.db.node_commons.plan.relational.planner.node.OffsetNode node,
GraphContext context) {
List<String> boxValue = new ArrayList<>();
boxValue.add(String.format("Offset-%s", node.getPlanNodeId().getId()));
@@ -958,7 +958,7 @@ public class PlanGraphPrinter implements PlanVisitor<List<String>, PlanGraphPrin
@Override
public List<String> visitSort(
- org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode node,
+ org.apache.iotdb.db.node_commons.plan.relational.planner.node.SortNode node,
GraphContext context) {
List<String> boxValue = new ArrayList<>();
boxValue.add(String.format("Sort-%s", node.getPlanNodeId().getId()));
@@ -967,9 +967,7 @@ public class PlanGraphPrinter implements PlanVisitor<List<String>, PlanGraphPrin
}
@Override
- public List<String> visitStreamSort(
- org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode node,
- GraphContext context) {
+ public List<String> visitStreamSort(StreamSortNode node, GraphContext context) {
List<String> boxValue = new ArrayList<>();
boxValue.add(String.format("StreamSort-%s", node.getPlanNodeId().getId()));
boxValue.add(String.format("OrderingScheme: %s", node.getOrderingScheme()));
@@ -999,7 +997,7 @@ public class PlanGraphPrinter implements PlanVisitor<List<String>, PlanGraphPrin
@Override
public List<String> visitMergeSort(
- org.apache.iotdb.db.queryengine.plan.relational.planner.node.MergeSortNode node,
+ org.apache.iotdb.db.node_commons.plan.relational.planner.node.MergeSortNode node,
GraphContext context) {
List<String> boxValue = new ArrayList<>();
boxValue.add(String.format("MergeSort-%s", node.getPlanNodeId().getId()));
@@ -1010,7 +1008,7 @@ public class PlanGraphPrinter implements PlanVisitor<List<String>, PlanGraphPrin
@Override
public List<String> visitCollect(
- org.apache.iotdb.db.queryengine.plan.relational.planner.node.CollectNode node,
+ org.apache.iotdb.db.node_commons.plan.relational.planner.node.CollectNode node,
GraphContext context) {
List<String> boxValue = new ArrayList<>();
boxValue.add(String.format("Collect-%s", node.getPlanNodeId().getId()));
@@ -1020,7 +1018,7 @@ public class PlanGraphPrinter implements PlanVisitor<List<String>, PlanGraphPrin
@Override
public List<String> visitTopK(
- org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode node,
+ org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKNode node,
GraphContext context) {
List<String> boxValue = new ArrayList<>();
boxValue.add(String.format("TopK-%s", node.getPlanNodeId().getId()));
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanNodeType.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanNodeType.java
index c1405c60e99..bcef3ef6026 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanNodeType.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanNodeType.java
@@ -19,7 +19,27 @@
package org.apache.iotdb.db.queryengine.plan.planner.plan.node;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AssignUniqueId;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.EnforceSingleRowNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.GapFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.GroupNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LinearFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.MarkDistinctNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.MergeSortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OutputNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.PatternRecognitionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.PreviousFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.RowNumberNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SemiJoinNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.StreamSortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TableFunctionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TableFunctionProcessorNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKRankingNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.UnionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ValueFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ValuesNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.load.LoadTsFilePieceNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.CountSchemaMergeNode;
@@ -121,30 +141,13 @@ import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.RelationalIn
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.RelationalInsertRowsNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.RelationalInsertTabletNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AlignedAggregationTreeDeviceViewScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.EnforceSingleRowNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExceptNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GapFillNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GroupNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.InformationSchemaTableScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntersectNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LinearFillNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MarkDistinctNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.NonAlignedAggregationTreeDeviceViewScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PatternRecognitionNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PreviousFillNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.RowNumberNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SemiJoinNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableDiskUsageInformationSchemaTableScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionProcessorNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKRankingNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeAlignedDeviceViewScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeNonAlignedDeviceViewScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValueFillNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValuesNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.ConstructTableDevicesBlackListNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.CreateOrUpdateTableDeviceNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.DeleteTableDeviceNode;
@@ -656,32 +659,29 @@ public enum PlanNodeType {
return org.apache.iotdb.db.node_commons.plan.relational.planner.node.FilterNode.deserialize(
buffer);
case 1002:
- return org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode.deserialize(
- buffer);
+ return org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode
+ .deserialize(buffer);
case 1003:
- return org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode.deserialize(
- buffer);
+ return OutputNode.deserialize(buffer);
case 1004:
return org.apache.iotdb.db.node_commons.plan.relational.planner.node.LimitNode.deserialize(
buffer);
case 1005:
- return org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode.deserialize(
+ return org.apache.iotdb.db.node_commons.plan.relational.planner.node.OffsetNode.deserialize(
buffer);
case 1006:
- return org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode.deserialize(
+ return org.apache.iotdb.db.node_commons.plan.relational.planner.node.SortNode.deserialize(
buffer);
case 1007:
- return org.apache.iotdb.db.queryengine.plan.relational.planner.node.MergeSortNode
- .deserialize(buffer);
+ return MergeSortNode.deserialize(buffer);
case 1008:
- return org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode.deserialize(
+ return org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKNode.deserialize(
buffer);
case 1009:
- return org.apache.iotdb.db.queryengine.plan.relational.planner.node.CollectNode.deserialize(
- buffer);
- case 1010:
- return org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode
+ return org.apache.iotdb.db.node_commons.plan.relational.planner.node.CollectNode
.deserialize(buffer);
+ case 1010:
+ return StreamSortNode.deserialize(buffer);
case 1011:
return JoinNode.deserialize(buffer);
case 1012:
@@ -691,7 +691,7 @@ public enum PlanNodeType {
case 1014:
return ValueFillNode.deserialize(buffer);
case 1015:
- return org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode
+ return org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode
.deserialize(buffer);
case 1016:
return org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ExpressionExtractor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ExpressionExtractor.java
index aee57659664..3aba4715957 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ExpressionExtractor.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ExpressionExtractor.java
@@ -19,14 +19,14 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FilterNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.SimplePlanVisitor;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.GroupReference;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Lookup;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
import com.google.common.collect.ImmutableList;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PlanBuilder.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PlanBuilder.java
index b4714360224..fa03234fe2b 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PlanBuilder.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PlanBuilder.java
@@ -19,12 +19,12 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.common.MPPQueryContext;
import org.apache.iotdb.db.queryengine.plan.planner.LocalExecutionPlanner;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis;
import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Scope;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/QueryPlanner.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/QueryPlanner.java
index e8660b5a965..87d84b4d518 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/QueryPlanner.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/QueryPlanner.java
@@ -20,8 +20,19 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner;
import org.apache.iotdb.db.exception.sql.SemanticException;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.Aggregation;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FilterNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.GapFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.GroupNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LimitNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LinearFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OffsetNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.PreviousFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ValueFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.common.MPPQueryContext;
import org.apache.iotdb.db.queryengine.common.QueryId;
import org.apache.iotdb.db.queryengine.common.SessionInfo;
@@ -33,17 +44,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.analyzer.NodeRef;
import org.apache.iotdb.db.queryengine.plan.relational.analyzer.RelationType;
import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.GapFillStartAndEndTimeExtractVisitor;
import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.PredicateWithUncorrelatedScalarSubqueryReconstructor;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Aggregation;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GapFillNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GroupNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LinearFillNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PreviousFillNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValueFillNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Delete;
@@ -96,6 +96,9 @@ import static com.google.common.collect.ImmutableMap.toImmutableMap;
import static com.google.common.collect.ImmutableSet.toImmutableSet;
import static java.lang.String.format;
import static java.util.Objects.requireNonNull;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.groupingSets;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.singleAggregation;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.singleGroupingSet;
import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.isNumericType;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingTranslator.sortItemToSortOrder;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.PlanBuilder.newPlanBuilder;
@@ -103,9 +106,6 @@ import static org.apache.iotdb.db.queryengine.plan.relational.planner.ScopeAware
import static org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder.ASC_NULLS_LAST;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator.GROUP_KEY_SUFFIX;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.GapFillStartAndEndTimeExtractVisitor.CAN_NOT_INFER_TIME_RANGE;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.groupingSets;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleAggregation;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet;
import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL;
import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN_OR_EQUAL;
import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WindowFrame.Type.GROUPS;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/RelationPlanner.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/RelationPlanner.java
index ad8133a9820..a3da7a10c0e 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/RelationPlanner.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/RelationPlanner.java
@@ -23,6 +23,23 @@ import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory;
import org.apache.iotdb.db.exception.sql.SemanticException;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FilterNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.Measure;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.PatternRecognitionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TableFunctionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.UnionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.AggregationLabelSet;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.AggregationValuePointer;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.ClassifierValuePointer;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.ExpressionAndValuePointers;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.ExpressionAndValuePointers.Assignment;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrLabel;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrRowPattern;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.LogicalIndexPointer;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.MatchNumberValuePointer;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.RowPatternToIrRewriter;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.ScalarValuePointer;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.ValuePointer;
import org.apache.iotdb.db.queryengine.common.MPPQueryContext;
import org.apache.iotdb.db.queryengine.common.QueryId;
import org.apache.iotdb.db.queryengine.common.SessionInfo;
@@ -62,27 +79,10 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableS
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExceptNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.InformationSchemaTableScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntersectNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Measure;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PatternRecognitionNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.RowsPerMatch;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SkipToPosition;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeDeviceViewScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.AggregationLabelSet;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.AggregationValuePointer;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ClassifierValuePointer;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers.Assignment;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrLabel;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrRowPattern;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.LogicalIndexPointer;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.MatchNumberValuePointer;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.RowPatternToIrRewriter;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ScalarValuePointer;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ValuePointer;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AliasedRelation;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AsofJoinOn;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor;
@@ -156,6 +156,8 @@ import static com.google.common.collect.ImmutableSet.toImmutableSet;
import static java.lang.String.format;
import static java.util.Objects.requireNonNull;
import static org.apache.iotdb.commons.schema.table.InformationSchema.INFORMATION_DATABASE;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.singleAggregation;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.singleGroupingSet;
import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.PatternRecognitionAnalysis.NavigationAnchor.LAST;
import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.PatternRecognitionAnalysis.NavigationMode.RUNNING;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingTranslator.sortItemToSortOrder;
@@ -165,8 +167,6 @@ import static org.apache.iotdb.db.queryengine.plan.relational.planner.QueryPlann
import static org.apache.iotdb.db.queryengine.plan.relational.planner.QueryPlanner.extractPatternRecognitionExpressions;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.QueryPlanner.pruneInvisibleFields;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.extractPredicates;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleAggregation;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet;
import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Join.Type.CROSS;
import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Join.Type.FULL;
import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Join.Type.IMPLICIT;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SubqueryPlanner.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SubqueryPlanner.java
index fe3db50d9e8..7394aef081f 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SubqueryPlanner.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SubqueryPlanner.java
@@ -19,7 +19,9 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.EnforceSingleRowNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.common.MPPQueryContext;
import org.apache.iotdb.db.queryengine.common.QueryId;
import org.apache.iotdb.db.queryengine.common.SessionInfo;
@@ -33,8 +35,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.QueryPlanner.Plan
import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.PredicateWithUncorrelatedScalarSubqueryReconstructor;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ApplyNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.EnforceSingleRowNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ExistsPredicate;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SymbolsExtractor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SymbolsExtractor.java
index ce54b2b503a..c08f7fd8f15 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SymbolsExtractor.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SymbolsExtractor.java
@@ -19,11 +19,11 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.analyzer.NodeRef;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Lookup;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DefaultExpressionTraversalVisitor;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DefaultTraversalVisitor;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DereferenceExpression;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/TableLogicalPlanner.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/TableLogicalPlanner.java
index 01f062729ca..b6737e43eb6 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/TableLogicalPlanner.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/TableLogicalPlanner.java
@@ -29,6 +29,9 @@ import org.apache.iotdb.commons.utils.TestOnly;
import org.apache.iotdb.db.exception.sql.SemanticException;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FilterNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LimitNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OffsetNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OutputNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.common.MPPQueryContext;
import org.apache.iotdb.db.queryengine.common.QueryId;
import org.apache.iotdb.db.queryengine.common.SessionInfo;
@@ -56,9 +59,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.PredicateWithU
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CopyToNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExplainAnalyzeNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntoNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.CreateOrUpdateTableDeviceNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableDeviceAttributeUpdateNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableDeviceFetchNode;
@@ -101,11 +101,11 @@ import java.util.Optional;
import static com.google.common.collect.ImmutableList.toImmutableList;
import static java.util.Objects.requireNonNull;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.OutputNode.COLUMN_NAME_PREFIX;
import static org.apache.iotdb.db.queryengine.metric.QueryPlanCostMetricSet.LOGICAL_PLANNER;
import static org.apache.iotdb.db.queryengine.metric.QueryPlanCostMetricSet.LOGICAL_PLAN_OPTIMIZE;
import static org.apache.iotdb.db.queryengine.plan.relational.metadata.MetadataUtil.createQualifiedObjectName;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.QueryPlanner.visibleFields;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode.COLUMN_NAME_PREFIX;
import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CountDevice.COUNT_DEVICE_HEADER_STRING;
import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowDevice.getDeviceColumnHeaderList;
import static org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager.getTSDataType;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/AddExchangeNodes.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/AddExchangeNodes.java
index 8688e9123dc..b9c1c6d4dba 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/AddExchangeNodes.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/AddExchangeNodes.java
@@ -20,18 +20,18 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.distribute;
import org.apache.iotdb.commons.partition.DataPartition;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.CollectNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TableFunctionProcessorNode;
import org.apache.iotdb.db.queryengine.common.MPPQueryContext;
import org.apache.iotdb.db.queryengine.plan.planner.distribution.NodeDistribution;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.TableDeviceSourceNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CollectNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CopyToNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CteScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExplainAnalyzeNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionProcessorNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableDeviceFetchNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableDeviceQueryCountNode;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableDistributedPlanGenerator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableDistributedPlanGenerator.java
index 1b79d388d0e..dc444c1cb41 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableDistributedPlanGenerator.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableDistributedPlanGenerator.java
@@ -35,10 +35,33 @@ import org.apache.iotdb.db.conf.IoTDBDescriptor;
import org.apache.iotdb.db.exception.sql.SemanticException;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.process.SingleChildProcessNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AssignUniqueId;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.CollectNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.EnforceSingleRowNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FillNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FilterNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.GapFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.GroupNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LimitNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.MarkDistinctNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.MergeSortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OffsetNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OutputNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.PatternRecognitionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.RowNumberNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SemiJoinNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.StreamSortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TableFunctionProcessorNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKRankingNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.UnionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ValueFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ValuesNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.common.DataNodeEndPoints;
import org.apache.iotdb.db.queryengine.common.MPPQueryContext;
import org.apache.iotdb.db.queryengine.common.QueryId;
@@ -62,42 +85,19 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme;
import org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTreeDeviceViewScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AlignedAggregationTreeDeviceViewScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CollectNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CopyToNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.EnforceSingleRowNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExplainAnalyzeNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GapFillNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GroupNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.InformationSchemaTableScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntoNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MarkDistinctNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MergeSortNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.NonAlignedAggregationTreeDeviceViewScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PatternRecognitionNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.RowNumberNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SemiJoinNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableDiskUsageInformationSchemaTableScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionProcessorNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKRankingNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeAlignedDeviceViewScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeDeviceViewScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeNonAlignedDeviceViewScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValueFillNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValuesNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.AbstractTableDeviceQueryNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableDeviceFetchNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableDeviceQueryCountNode;
@@ -144,10 +144,10 @@ import java.util.stream.IntStream;
import static com.google.common.collect.ImmutableList.toImmutableList;
import static org.apache.iotdb.commons.partition.DataPartition.NOT_ASSIGNED;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.Step.FINAL;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.Step.SINGLE;
import static org.apache.iotdb.db.queryengine.plan.relational.function.FunctionKind.AGGREGATE;
import static org.apache.iotdb.db.queryengine.plan.relational.metadata.FunctionNullability.getAggregationFunctionNullability;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.FINAL;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.SINGLE;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.PushPredicateIntoTableScan.containsDiffFunction;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.TransformSortToStreamSort.isOrderByAllIdsAndTime;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.Util.split;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableDistributedPlanner.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableDistributedPlanner.java
index 14de7596ab4..fbd59e8aba9 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableDistributedPlanner.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableDistributedPlanner.java
@@ -22,6 +22,7 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.distribute;
import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet;
import org.apache.iotdb.commons.utils.TestOnly;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OutputNode;
import org.apache.iotdb.db.queryengine.common.MPPQueryContext;
import org.apache.iotdb.db.queryengine.execution.exchange.sink.DownStreamChannelLocation;
import org.apache.iotdb.db.queryengine.plan.planner.distribution.NodeDistribution;
@@ -40,7 +41,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
import org.apache.iotdb.db.queryengine.plan.relational.planner.PlannerContext;
import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.DataNodeLocationSupplierFactory;
import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.DistributedOptimizeFactory;
import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.PlanOptimizer;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableModelTypeProviderExtractor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableModelTypeProviderExtractor.java
index 0f2384bded7..5c4ca45c3e9 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableModelTypeProviderExtractor.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableModelTypeProviderExtractor.java
@@ -19,32 +19,32 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.distribute;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.CollectNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FillNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FilterNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.GapFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.GroupNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LimitNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.MergeSortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OffsetNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OutputNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.StreamSortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKNode;
import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.SimplePlanVisitor;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.CountSchemaMergeNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.sink.IdentitySinkNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CollectNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CopyToNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GapFillNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GroupNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntoNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MergeSortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.AbstractTableDeviceQueryNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableDeviceQueryCountNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableDeviceQueryScanNode;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/AggregationDecorrelation.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/AggregationDecorrelation.java
index e61bf6f7be2..81d5dc5c7fa 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/AggregationDecorrelation.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/AggregationDecorrelation.java
@@ -19,9 +19,9 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/EliminateLimitProjectWithTableScan.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/EliminateLimitProjectWithTableScan.java
index 6d8a2569d0e..630e56aa4aa 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/EliminateLimitProjectWithTableScan.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/EliminateLimitProjectWithTableScan.java
@@ -20,9 +20,9 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LimitNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/EvaluateEmptyIntersect.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/EvaluateEmptyIntersect.java
index 03c8bba9a7e..50fee04510b 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/EvaluateEmptyIntersect.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/EvaluateEmptyIntersect.java
@@ -19,12 +19,12 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Lookup;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntersectNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ExpressionRewriteRuleSet.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ExpressionRewriteRuleSet.java
index 6def85481de..0c55cca58ec 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ExpressionRewriteRuleSet.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ExpressionRewriteRuleSet.java
@@ -20,15 +20,15 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FilterNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.Measure;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.PatternRecognitionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.ExpressionAndValuePointers;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrLabel;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolsExtractor;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Measure;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PatternRecognitionNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrLabel;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/GatherAndMergeWindows.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/GatherAndMergeWindows.java
index ff7b187aadb..c9960774eaa 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/GatherAndMergeWindows.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/GatherAndMergeWindows.java
@@ -19,14 +19,14 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments;
import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolsExtractor;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementExceptAll.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementExceptAll.java
index ee5e94e6b8d..17b7cddba5a 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementExceptAll.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementExceptAll.java
@@ -21,12 +21,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
import org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinScalarFunction;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FilterNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExceptNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementExceptDistinctAsUnion.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementExceptDistinctAsUnion.java
index 49b87097164..f48d1ae89de 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementExceptDistinctAsUnion.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementExceptDistinctAsUnion.java
@@ -20,12 +20,12 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FilterNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExceptNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericLiteral;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementIntersectAll.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementIntersectAll.java
index a6034c3a24a..145dd971e16 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementIntersectAll.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementIntersectAll.java
@@ -21,11 +21,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
import org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinScalarFunction;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FilterNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntersectNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementIntersectDistinctAsUnion.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementIntersectDistinctAsUnion.java
index e1599bd767f..700d12d413c 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementIntersectDistinctAsUnion.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementIntersectDistinctAsUnion.java
@@ -20,12 +20,12 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FilterNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntersectNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericLiteral;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementPatternRecognition.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementPatternRecognition.java
index bc0a5a4e621..f5902b94489 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementPatternRecognition.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementPatternRecognition.java
@@ -19,13 +19,13 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.GroupNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.PatternRecognitionNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme;
import org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GroupNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PatternRecognitionNode;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementTableFunctionSource.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementTableFunctionSource.java
index 87df600fe01..f6e89ccc5c4 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementTableFunctionSource.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementTableFunctionSource.java
@@ -19,15 +19,15 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.GroupNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TableFunctionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TableFunctionProcessorNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme;
import org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GroupNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionProcessorNode;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/InlineProjections.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/InlineProjections.java
index df070ff6a35..8927009b4c2 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/InlineProjections.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/InlineProjections.java
@@ -19,6 +19,7 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.common.SessionInfo;
import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
@@ -27,7 +28,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.PlannerContext;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolsExtractor;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimitOverProjectWithMergeSort.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimitOverProjectWithMergeSort.java
index 8bea3672611..3f676fde68a 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimitOverProjectWithMergeSort.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimitOverProjectWithMergeSort.java
@@ -20,11 +20,11 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LimitNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.MergeSortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MergeSortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimitOverProjectWithSort.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimitOverProjectWithSort.java
index aeaa11ce535..080bb389b73 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimitOverProjectWithSort.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimitOverProjectWithSort.java
@@ -20,11 +20,11 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LimitNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.StreamSortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimitWithMergeSort.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimitWithMergeSort.java
index d547305ed4d..160c0e6fc92 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimitWithMergeSort.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimitWithMergeSort.java
@@ -20,10 +20,10 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LimitNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.MergeSortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MergeSortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimitWithSort.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimitWithSort.java
index 93fa0abbba9..36c3e68d796 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimitWithSort.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimitWithSort.java
@@ -20,10 +20,10 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LimitNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.StreamSortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeUnion.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeUnion.java
index 2c378b78723..86357f1113c 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeUnion.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeUnion.java
@@ -19,9 +19,9 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.UnionNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SetOperationNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MultipleDistinctAggregationToMarkDistinct.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MultipleDistinctAggregationToMarkDistinct.java
index 90914832dd2..e87e1991a6f 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MultipleDistinctAggregationToMarkDistinct.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MultipleDistinctAggregationToMarkDistinct.java
@@ -19,11 +19,11 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.MarkDistinctNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MarkDistinctNode;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/OptimizeRowPattern.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/OptimizeRowPattern.java
index 915be48a777..9b9071e2b10 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/OptimizeRowPattern.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/OptimizeRowPattern.java
@@ -19,11 +19,11 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.PatternRecognitionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrPatternAlternationOptimizer;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrRowPattern;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrRowPatternFlattener;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PatternRecognitionNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrPatternAlternationOptimizer;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrRowPattern;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrRowPatternFlattener;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ProjectOffPushDownRule.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ProjectOffPushDownRule.java
index 8a13c32767a..ac5a2cf2b52 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ProjectOffPushDownRule.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ProjectOffPushDownRule.java
@@ -19,10 +19,10 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneAggregationColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneAggregationColumns.java
index 30a6cced9e0..47ab69b9581 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneAggregationColumns.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneAggregationColumns.java
@@ -19,9 +19,9 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
import com.google.common.collect.Maps;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneAggregationSourceColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneAggregationSourceColumns.java
index 4b0af1793ce..171a498b57c 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneAggregationSourceColumns.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneAggregationSourceColumns.java
@@ -19,10 +19,10 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolsExtractor;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneAssignUniqueIdColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneAssignUniqueIdColumns.java
index a5c675b5fc8..783e99ad6df 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneAssignUniqueIdColumns.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneAssignUniqueIdColumns.java
@@ -19,9 +19,9 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AssignUniqueId;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId;
import java.util.Optional;
import java.util.Set;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneDistinctAggregation.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneDistinctAggregation.java
index 4b0735ae1ee..157888055ed 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneDistinctAggregation.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneDistinctAggregation.java
@@ -19,14 +19,14 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.UnionNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Lookup;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExceptNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntersectNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneEnforceSingleRowColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneEnforceSingleRowColumns.java
index 17125ef9a80..b4f85688197 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneEnforceSingleRowColumns.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneEnforceSingleRowColumns.java
@@ -19,9 +19,9 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.EnforceSingleRowNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.EnforceSingleRowNode;
import java.util.Optional;
import java.util.Set;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneGapFillColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneGapFillColumns.java
index e13c2c15502..59907a35407 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneGapFillColumns.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneGapFillColumns.java
@@ -19,9 +19,9 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.GapFillNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GapFillNode;
import com.google.common.collect.Streams;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneMarkDistinctColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneMarkDistinctColumns.java
index 42a522c4e54..660b70a6c2f 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneMarkDistinctColumns.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneMarkDistinctColumns.java
@@ -19,9 +19,9 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.MarkDistinctNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MarkDistinctNode;
import com.google.common.collect.Streams;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneOffsetColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneOffsetColumns.java
index 1f60a4ab643..daff76b7cc3 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneOffsetColumns.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneOffsetColumns.java
@@ -19,9 +19,9 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OffsetNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode;
import java.util.Optional;
import java.util.Set;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneOutputSourceColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneOutputSourceColumns.java
index 534299d166e..3c931b2fbee 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneOutputSourceColumns.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneOutputSourceColumns.java
@@ -19,8 +19,8 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OutputNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PrunePatternRecognitionSourceColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PrunePatternRecognitionSourceColumns.java
index ca333145fdc..10704d99e05 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PrunePatternRecognitionSourceColumns.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PrunePatternRecognitionSourceColumns.java
@@ -19,11 +19,11 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.Measure;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.PatternRecognitionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.ExpressionAndValuePointers;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Measure;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PatternRecognitionNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneProjectColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneProjectColumns.java
index bf3360fda15..2fb5ba4cb61 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneProjectColumns.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneProjectColumns.java
@@ -19,9 +19,9 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import java.util.Optional;
import java.util.Set;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneSortColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneSortColumns.java
index 8966b4c4a8a..bbc77302598 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneSortColumns.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneSortColumns.java
@@ -19,9 +19,9 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SortNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode;
import com.google.common.collect.Streams;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTableFunctionProcessorColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTableFunctionProcessorColumns.java
index 1886ed39e85..811904e9d41 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTableFunctionProcessorColumns.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTableFunctionProcessorColumns.java
@@ -19,10 +19,10 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TableFunctionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TableFunctionProcessorNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionProcessorNode;
import java.util.List;
import java.util.Optional;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTableFunctionProcessorSourceColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTableFunctionProcessorSourceColumns.java
index e9fd2e9db00..3cde5225346 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTableFunctionProcessorSourceColumns.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTableFunctionProcessorSourceColumns.java
@@ -19,10 +19,10 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TableFunctionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TableFunctionProcessorNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionProcessorNode;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTopKColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTopKColumns.java
index d213b327af1..e4b4fe57a1e 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTopKColumns.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTopKColumns.java
@@ -18,9 +18,9 @@
*/
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode;
import com.google.common.collect.Streams;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneUnionColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneUnionColumns.java
index d945ce117af..4904df33022 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneUnionColumns.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneUnionColumns.java
@@ -19,9 +19,9 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.UnionNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableListMultimap;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneUnionSourceColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneUnionSourceColumns.java
index 71760f58aaa..1b4c4f3c3b6 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneUnionSourceColumns.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneUnionSourceColumns.java
@@ -19,9 +19,9 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.UnionNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneWindowColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneWindowColumns.java
index 7401a65fe07..4405ee3c3d4 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneWindowColumns.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneWindowColumns.java
@@ -19,10 +19,10 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolsExtractor;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Maps;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushDownFilterIntoWindow.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushDownFilterIntoWindow.java
index 69e33daeac2..020f037adff 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushDownFilterIntoWindow.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushDownFilterIntoWindow.java
@@ -20,12 +20,12 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FilterNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKRankingNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ValuesNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.PlannerContext;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKRankingNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValuesNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushDownLimitIntoWindow.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushDownLimitIntoWindow.java
index e7f20ef0114..9bd7f075e09 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushDownLimitIntoWindow.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushDownLimitIntoWindow.java
@@ -20,10 +20,10 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LimitNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKRankingNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.common.SessionInfo;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKRankingNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern;
@@ -34,12 +34,12 @@ import java.util.Optional;
import static com.google.common.collect.Iterables.getOnlyElement;
import static java.lang.Math.toIntExact;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKRankingNode.RankingType.ROW_NUMBER;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.Util.toTopNRankingType;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.ChildReplacer.replaceChildren;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.limit;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.source;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.window;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKRankingNode.RankingType.ROW_NUMBER;
import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture.newCapture;
public class PushDownLimitIntoWindow implements Rule<LimitNode> {
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushDownOffsetIntoTableScan.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushDownOffsetIntoTableScan.java
index 67b50ab31df..69e24ee2265 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushDownOffsetIntoTableScan.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushDownOffsetIntoTableScan.java
@@ -19,11 +19,11 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OffsetNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.InformationSchemaTableScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushLimitThroughOffset.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushLimitThroughOffset.java
index d936c56db35..f5fa14df40b 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushLimitThroughOffset.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushLimitThroughOffset.java
@@ -20,8 +20,8 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LimitNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OffsetNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushLimitThroughProject.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushLimitThroughProject.java
index d86ab6a6513..9f53c9f065d 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushLimitThroughProject.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushLimitThroughProject.java
@@ -19,8 +19,8 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LimitNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushLimitThroughUnion.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushLimitThroughUnion.java
index 43cce40c744..dec567bd2dd 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushLimitThroughUnion.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushLimitThroughUnion.java
@@ -20,9 +20,9 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LimitNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.UnionNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushProjectionThroughUnion.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushProjectionThroughUnion.java
index 4678ec16b48..a221025569f 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushProjectionThroughUnion.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushProjectionThroughUnion.java
@@ -19,12 +19,12 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.UnionNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushTopKThroughUnion.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushTopKThroughUnion.java
index 2064e7b6863..07f5fa01e13 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushTopKThroughUnion.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushTopKThroughUnion.java
@@ -19,11 +19,11 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.UnionNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.SymbolMapper;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveEmptyExceptBranches.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveEmptyExceptBranches.java
index b07531ef9a1..95062b05777 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveEmptyExceptBranches.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveEmptyExceptBranches.java
@@ -19,6 +19,7 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
@@ -26,7 +27,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Lookup;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExceptNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern;
@@ -38,8 +38,8 @@ import com.google.common.collect.ListMultimap;
import java.util.List;
import java.util.Map;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleAggregation;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.singleAggregation;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.singleGroupingSet;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.QueryCardinalityUtil.isEmpty;
public class RemoveEmptyExceptBranches implements Rule<ExceptNode> {
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveEmptyUnionBranches.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveEmptyUnionBranches.java
index 1b4021f7116..54326e8963a 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveEmptyUnionBranches.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveEmptyUnionBranches.java
@@ -19,12 +19,12 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.UnionNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveRedundantEnforceSingleRowNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveRedundantEnforceSingleRowNode.java
index 4546dd4efc2..5ab98cc57dd 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveRedundantEnforceSingleRowNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveRedundantEnforceSingleRowNode.java
@@ -19,8 +19,8 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.EnforceSingleRowNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.EnforceSingleRowNode;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveRedundantExists.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveRedundantExists.java
index 8af7e07af92..826b810dad8 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveRedundantExists.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveRedundantExists.java
@@ -19,11 +19,11 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ApplyNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.Cardinality;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveRedundantIdentityProjections.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveRedundantIdentityProjections.java
index f5a860a6ff2..a55f2ecd608 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveRedundantIdentityProjections.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveRedundantIdentityProjections.java
@@ -19,8 +19,8 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveRedundantWindow.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveRedundantWindow.java
index e782c7a94ac..fbe4f3e6515 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveRedundantWindow.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveRedundantWindow.java
@@ -19,9 +19,9 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ValuesNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValuesNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ReplaceWindowWithRowNumber.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ReplaceWindowWithRowNumber.java
index 16f3fde8f32..fd0c33f9e42 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ReplaceWindowWithRowNumber.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ReplaceWindowWithRowNumber.java
@@ -19,11 +19,11 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.RowNumberNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.plan.relational.function.BoundSignature;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.RowNumberNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SetOperationMerge.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SetOperationMerge.java
index 04dee3888bb..541bda4ac50 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SetOperationMerge.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SetOperationMerge.java
@@ -19,6 +19,7 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.UnionNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Lookup;
@@ -26,7 +27,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExceptNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntersectNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SetOperationNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode;
import com.google.common.collect.ImmutableListMultimap;
import com.google.common.collect.Iterables;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SetOperationNodeTranslator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SetOperationNodeTranslator.java
index 509af165b8b..904eb09cd76 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SetOperationNodeTranslator.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SetOperationNodeTranslator.java
@@ -19,6 +19,11 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.GroupNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.UnionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.common.QueryId;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.function.BoundSignature;
@@ -33,12 +38,7 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme;
import org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GroupNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SetOperationNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FrameBound;
@@ -63,7 +63,7 @@ import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkState;
import static com.google.common.collect.Iterables.concat;
import static java.util.Objects.requireNonNull;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.singleGroupingSet;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.Util.getResolvedBuiltInAggregateFunction;
import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL;
import static org.apache.iotdb.db.queryengine.plan.relational.type.TypeSignatureTranslator.toSqlType;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SimplifyCountOverConstant.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SimplifyCountOverConstant.java
index e0ea8ffc7ec..5d5cc8e5417 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SimplifyCountOverConstant.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SimplifyCountOverConstant.java
@@ -19,6 +19,8 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.function.BoundSignature;
import org.apache.iotdb.db.queryengine.plan.relational.function.FunctionId;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.ResolvedFunction;
@@ -26,8 +28,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments;
import org.apache.iotdb.db.queryengine.plan.relational.planner.PlannerContext;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SingleDistinctAggregationToGroupBy.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SingleDistinctAggregationToGroupBy.java
index e5cb6a96130..130972ea1e4 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SingleDistinctAggregationToGroupBy.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SingleDistinctAggregationToGroupBy.java
@@ -19,9 +19,9 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern;
@@ -38,8 +38,8 @@ import java.util.stream.Collectors;
import java.util.stream.Stream;
import static com.google.common.base.Preconditions.checkArgument;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleAggregation;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.singleAggregation;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.singleGroupingSet;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.aggregation;
/**
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedDistinctAggregationWithProjection.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedDistinctAggregationWithProjection.java
index 47177fe1910..778a57bd120 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedDistinctAggregationWithProjection.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedDistinctAggregationWithProjection.java
@@ -19,17 +19,17 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AssignUniqueId;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments;
import org.apache.iotdb.db.queryengine.plan.relational.planner.PlannerContext;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.PlanNodeDecorrelator;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
@@ -45,8 +45,8 @@ import java.util.Set;
import static com.google.common.collect.ImmutableList.toImmutableList;
import static java.util.Objects.requireNonNull;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.singleGroupingSet;
import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode.JoinType.LEFT;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.filter;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.subquery;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.type;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedDistinctAggregationWithoutProjection.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedDistinctAggregationWithoutProjection.java
index 4fb95a4e00b..8b992a8c7d7 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedDistinctAggregationWithoutProjection.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedDistinctAggregationWithoutProjection.java
@@ -19,13 +19,13 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AssignUniqueId;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.PlannerContext;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns;
import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.PlanNodeDecorrelator;
@@ -40,9 +40,9 @@ import org.apache.tsfile.read.common.type.BooleanType;
import java.util.Optional;
import static java.util.Objects.requireNonNull;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.singleGroupingSet;
import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode.JoinType.LEFT;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.Util.restrictOutputs;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.filter;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.subquery;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.type;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedGlobalAggregationWithProjection.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedGlobalAggregationWithProjection.java
index 91c3edb6add..b5c4326c5a6 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedGlobalAggregationWithProjection.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedGlobalAggregationWithProjection.java
@@ -19,17 +19,17 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AssignUniqueId;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments;
import org.apache.iotdb.db.queryengine.plan.relational.planner.PlannerContext;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.PlanNodeDecorrelator;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture;
@@ -50,13 +50,13 @@ import java.util.Set;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.collect.ImmutableList.toImmutableList;
import static java.util.Objects.requireNonNull;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.singleGroupingSet;
import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode.JoinType.INNER;
import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode.JoinType.LEFT;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.and;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.AggregationDecorrelation.isDistinctOperator;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.AggregationDecorrelation.restoreDistinctAggregation;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.AggregationDecorrelation.rewriteWithMasks;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.Aggregation.groupingColumns;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.filter;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.subquery;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedGlobalAggregationWithoutProjection.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedGlobalAggregationWithoutProjection.java
index bfb84bdc379..c746e86f66d 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedGlobalAggregationWithoutProjection.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedGlobalAggregationWithoutProjection.java
@@ -19,17 +19,17 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AssignUniqueId;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments;
import org.apache.iotdb.db.queryengine.plan.relational.planner.PlannerContext;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.PlanNodeDecorrelator;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture;
@@ -47,6 +47,7 @@ import java.util.Optional;
import static com.google.common.base.Preconditions.checkArgument;
import static java.util.Objects.requireNonNull;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.singleGroupingSet;
import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode.JoinType.INNER;
import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode.JoinType.LEFT;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.and;
@@ -54,7 +55,6 @@ import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.
import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.AggregationDecorrelation.restoreDistinctAggregation;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.AggregationDecorrelation.rewriteWithMasks;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.Util.restrictOutputs;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.Aggregation.groupingColumns;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.filter;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.subquery;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedGroupedAggregationWithProjection.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedGroupedAggregationWithProjection.java
index c207b854181..2a02febf052 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedGroupedAggregationWithProjection.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedGroupedAggregationWithProjection.java
@@ -19,17 +19,17 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AssignUniqueId;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments;
import org.apache.iotdb.db.queryengine.plan.relational.planner.PlannerContext;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.PlanNodeDecorrelator;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
@@ -45,10 +45,10 @@ import java.util.Set;
import static com.google.common.collect.ImmutableList.toImmutableList;
import static java.util.Objects.requireNonNull;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.singleGroupingSet;
import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode.JoinType.INNER;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.AggregationDecorrelation.isDistinctOperator;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.AggregationDecorrelation.restoreDistinctAggregation;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.Aggregation.groupingColumns;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.filter;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.subquery;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedGroupedAggregationWithoutProjection.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedGroupedAggregationWithoutProjection.java
index f6aa213c240..3ce8d32f0d2 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedGroupedAggregationWithoutProjection.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedGroupedAggregationWithoutProjection.java
@@ -19,13 +19,13 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AssignUniqueId;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.PlannerContext;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns;
import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.PlanNodeDecorrelator;
@@ -40,11 +40,11 @@ import org.apache.tsfile.read.common.type.BooleanType;
import java.util.Optional;
import static java.util.Objects.requireNonNull;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.singleGroupingSet;
import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode.JoinType.INNER;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.AggregationDecorrelation.isDistinctOperator;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.AggregationDecorrelation.restoreDistinctAggregation;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.Util.restrictOutputs;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.Aggregation.groupingColumns;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.filter;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.subquery;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedScalarSubquery.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedScalarSubquery.java
index a2091c8e4e4..ea45a1f4a3a 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedScalarSubquery.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedScalarSubquery.java
@@ -19,17 +19,17 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AssignUniqueId;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.EnforceSingleRowNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FilterNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.MarkDistinctNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.EnforceSingleRowNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MarkDistinctNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.Cardinality;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformExistsApplyToCorrelatedJoin.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformExistsApplyToCorrelatedJoin.java
index ebf24e7b278..377e9543c75 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformExistsApplyToCorrelatedJoin.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformExistsApplyToCorrelatedJoin.java
@@ -19,17 +19,17 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LimitNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.ResolvedFunction;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments;
import org.apache.iotdb.db.queryengine.plan.relational.planner.PlannerContext;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ApplyNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.PlanNodeDecorrelator;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast;
@@ -48,10 +48,10 @@ import java.util.Optional;
import static com.google.common.base.Preconditions.checkState;
import static com.google.common.collect.Iterables.getOnlyElement;
import static java.util.Objects.requireNonNull;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.globalAggregation;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.singleAggregation;
import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode.JoinType.INNER;
import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode.JoinType.LEFT;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.globalAggregation;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleAggregation;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.applyNode;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.Util.getResolvedBuiltInAggregateFunction;
import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformFilteringSemiJoinToInnerJoin.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformFilteringSemiJoinToInnerJoin.java
index 9f0efc02a76..5f7229abcc2 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformFilteringSemiJoinToInnerJoin.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformFilteringSemiJoinToInnerJoin.java
@@ -21,12 +21,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FilterNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SemiJoinNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SemiJoinNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
@@ -40,12 +40,12 @@ import java.util.Optional;
import java.util.function.Predicate;
import static com.google.common.collect.ImmutableList.toImmutableList;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.singleAggregation;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.singleGroupingSet;
import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode.JoinType.INNER;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.ExpressionSymbolInliner.inlineSymbols;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.and;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.extractConjuncts;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleAggregation;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.filter;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.semiJoin;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.source;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformUncorrelatedInPredicateSubqueryToSemiJoin.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformUncorrelatedInPredicateSubqueryToSemiJoin.java
index 80fe79c7e5f..223bb08e24b 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformUncorrelatedInPredicateSubqueryToSemiJoin.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformUncorrelatedInPredicateSubqueryToSemiJoin.java
@@ -19,10 +19,10 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SemiJoinNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ApplyNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SemiJoinNode;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures;
import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformUncorrelatedSubqueryToJoin.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformUncorrelatedSubqueryToJoin.java
index cbe385fcec4..f4e2719a089 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformUncorrelatedSubqueryToJoin.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformUncorrelatedSubqueryToJoin.java
@@ -20,12 +20,12 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Lookup;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IfExpression;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/Util.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/Util.java
index 5845ffd4221..1cf3ad7da21 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/Util.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/Util.java
@@ -18,15 +18,15 @@
*/
package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKRankingNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.common.QueryId;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.function.BoundSignature;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolsExtractor;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKRankingNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
import com.google.common.collect.ImmutableList;
@@ -41,8 +41,8 @@ import java.util.Set;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.collect.ImmutableList.toImmutableList;
import static com.google.common.collect.Iterables.getOnlyElement;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKRankingNode.RankingType.RANK;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKRankingNode.RankingType.ROW_NUMBER;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKRankingNode.RankingType.RANK;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKRankingNode.RankingType.ROW_NUMBER;
final class Util {
private Util() {}
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AggregationTableScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AggregationTableScanNode.java
index 5fe33861cd4..b024aa7bc44 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AggregationTableScanNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AggregationTableScanNode.java
@@ -22,6 +22,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.IPlanVisitor;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor;
import org.apache.iotdb.db.queryengine.plan.relational.function.BoundSignature;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AggregationTreeDeviceViewScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AggregationTreeDeviceViewScanNode.java
index 9b066809da8..936f7dc9125 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AggregationTreeDeviceViewScanNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AggregationTreeDeviceViewScanNode.java
@@ -21,6 +21,7 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.IPlanVisitor;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AlignedAggregationTreeDeviceViewScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AlignedAggregationTreeDeviceViewScanNode.java
index 8514bcbb32f..daf2b49a19b 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AlignedAggregationTreeDeviceViewScanNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AlignedAggregationTreeDeviceViewScanNode.java
@@ -21,6 +21,7 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.IPlanVisitor;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/NonAlignedAggregationTreeDeviceViewScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/NonAlignedAggregationTreeDeviceViewScanNode.java
index d9b8cc1b59a..8307b75cd06 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/NonAlignedAggregationTreeDeviceViewScanNode.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/NonAlignedAggregationTreeDeviceViewScanNode.java
@@ -21,6 +21,7 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.IPlanVisitor;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/Patterns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/Patterns.java
index a186c676d37..8b7006d40f6 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/Patterns.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/Patterns.java
@@ -19,10 +19,30 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.node;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AssignUniqueId;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.EnforceSingleRowNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FillNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FilterNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.GapFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.GroupNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LimitNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.MarkDistinctNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.MergeSortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OffsetNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OutputNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.PatternRecognitionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.RowNumberNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SemiJoinNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TableFunctionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TableFunctionProcessorNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKRankingNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.UnionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Lookup;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/ParallelizeGrouping.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/ParallelizeGrouping.java
index faecdd41a9d..08b3a5ce14f 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/ParallelizeGrouping.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/ParallelizeGrouping.java
@@ -19,7 +19,15 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.GroupNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.PatternRecognitionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SemiJoinNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.StreamSortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TableFunctionProcessorNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor;
import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis;
@@ -27,17 +35,9 @@ import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema;
import org.apache.iotdb.db.queryengine.plan.relational.planner.DataOrganizationSpecification;
import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GroupNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PatternRecognitionNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SemiJoinNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionProcessorNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode;
import java.util.List;
import java.util.Map;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PlanNodeDecorrelator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PlanNodeDecorrelator.java
index b0ca41272e2..d77fdd03016 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PlanNodeDecorrelator.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PlanNodeDecorrelator.java
@@ -21,8 +21,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations;
import org.apache.iotdb.db.exception.sql.SemanticException;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FilterNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LimitNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments;
@@ -32,9 +35,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator;
import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolsExtractor;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.GroupReference;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Lookup;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
@@ -60,12 +60,12 @@ import static com.google.common.base.Preconditions.checkState;
import static com.google.common.collect.ImmutableList.toImmutableList;
import static com.google.common.collect.ImmutableMap.toImmutableMap;
import static java.util.Objects.requireNonNull;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.singleAggregation;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.singleGroupingSet;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.DeterminismEvaluator.isDeterministic;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.and;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.combineConjuncts;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.extractConjuncts;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleAggregation;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.SymbolMapper.symbolMapper;
import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.EQUAL;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PushAggregationIntoTableScan.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PushAggregationIntoTableScan.java
index 22a44334183..d246d4fd595 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PushAggregationIntoTableScan.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PushAggregationIntoTableScan.java
@@ -20,6 +20,8 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations;
import org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinScalarFunction;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.common.QueryId;
import org.apache.iotdb.db.queryengine.common.SessionInfo;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
@@ -27,10 +29,8 @@ import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PushLimitOffsetIntoTableScan.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PushLimitOffsetIntoTableScan.java
index 6299e2976b4..396da1e0b50 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PushLimitOffsetIntoTableScan.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PushLimitOffsetIntoTableScan.java
@@ -21,29 +21,29 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations;
import org.apache.iotdb.commons.schema.table.InformationSchema;
import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FilterNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.GapFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.GroupNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LimitNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LinearFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.PreviousFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.StreamSortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TableFunctionProcessorNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor;
import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema;
import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CteScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GapFillNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GroupNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.InformationSchemaTableScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LinearFillNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PreviousFillNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionProcessorNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
import java.util.HashSet;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PushPredicateIntoTableScan.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PushPredicateIntoTableScan.java
index 23dc1c3c7b4..1708bd9e016 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PushPredicateIntoTableScan.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PushPredicateIntoTableScan.java
@@ -26,8 +26,14 @@ import org.apache.iotdb.commons.schema.table.InformationSchema;
import org.apache.iotdb.db.conf.IoTDBConfig;
import org.apache.iotdb.db.conf.IoTDBDescriptor;
import org.apache.iotdb.db.exception.sql.SemanticException;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AssignUniqueId;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FilterNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SemiJoinNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.UnionNode;
import org.apache.iotdb.db.queryengine.common.MPPQueryContext;
import org.apache.iotdb.db.queryengine.common.QueryId;
import org.apache.iotdb.db.queryengine.metric.QueryPlanCostMetricSet;
@@ -55,16 +61,10 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator;
import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolsExtractor;
import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.ReplaceSymbolInExpression;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.InformationSchemaTableScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SemiJoinNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeDeviceViewScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/QueryCardinalityUtil.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/QueryCardinalityUtil.java
index f13b516101d..ab4023e3fed 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/QueryCardinalityUtil.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/QueryCardinalityUtil.java
@@ -19,19 +19,19 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.EnforceSingleRowNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FilterNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LimitNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OffsetNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.ExchangeNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.GroupReference;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Lookup;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.EnforceSingleRowNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode;
import com.google.common.collect.Range;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/SortElimination.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/SortElimination.java
index d8f4d49ee87..eba43ad7a31 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/SortElimination.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/SortElimination.java
@@ -20,17 +20,17 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.GapFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.PatternRecognitionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.StreamSortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ValueFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor;
import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GapFillNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PatternRecognitionNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValueFillNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode;
import java.util.Collections;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/SymbolMapper.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/SymbolMapper.java
index fafe3f304ce..b28543ca2c0 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/SymbolMapper.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/SymbolMapper.java
@@ -20,7 +20,21 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LimitNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.Measure;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.PatternRecognitionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.RowNumberNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKRankingNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.WindowNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.AggregationValuePointer;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.ClassifierValuePointer;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.ExpressionAndValuePointers;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrLabel;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.MatchNumberValuePointer;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.ScalarValuePointer;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.ValuePointer;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.DataOrganizationSpecification;
import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme;
@@ -29,21 +43,7 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator;
import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.ExpressionRewriter;
import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.ExpressionTreeRewriter;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ApplyNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Measure;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PatternRecognitionNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.RowNumberNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKRankingNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.AggregationValuePointer;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ClassifierValuePointer;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrLabel;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.MatchNumberValuePointer;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ScalarValuePointer;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ValuePointer;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference;
@@ -61,7 +61,7 @@ import java.util.stream.Collectors;
import static com.google.common.collect.ImmutableList.toImmutableList;
import static com.google.common.collect.ImmutableSet.toImmutableSet;
import static java.util.Objects.requireNonNull;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.groupingSets;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.groupingSets;
public class SymbolMapper {
private final Function<Symbol, Symbol> mappingFunction;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/TransformAggregationToStreamable.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/TransformAggregationToStreamable.java
index e448a131f31..d4213a2b7ac 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/TransformAggregationToStreamable.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/TransformAggregationToStreamable.java
@@ -19,22 +19,22 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.MergeSortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TableFunctionProcessorNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.UnionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ValueFillNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema;
import org.apache.iotdb.db.queryengine.plan.relational.planner.DataOrganizationSpecification;
import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MergeSortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionProcessorNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValueFillNode;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/TransformQuantifiedComparisonApplyToCorrelatedJoin.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/TransformQuantifiedComparisonApplyToCorrelatedJoin.java
index fead848e1b2..47bdf10a013 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/TransformQuantifiedComparisonApplyToCorrelatedJoin.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/TransformQuantifiedComparisonApplyToCorrelatedJoin.java
@@ -19,7 +19,9 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.common.QueryId;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
@@ -29,10 +31,8 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.SimplePlanRewrite
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator;
import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ApplyNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression;
@@ -56,10 +56,10 @@ import java.util.function.Function;
import static com.google.common.base.Preconditions.checkState;
import static com.google.common.collect.Iterables.getOnlyElement;
import static java.util.Objects.requireNonNull;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.globalAggregation;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.singleAggregation;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.SimplePlanRewriter.rewriteWith;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.combineConjuncts;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.globalAggregation;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleAggregation;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.ApplyNode.Quantifier.ALL;
import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.FALSE_LITERAL;
import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/TransformSortToStreamSort.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/TransformSortToStreamSort.java
index ecc29d27e6a..11c35c12bbf 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/TransformSortToStreamSort.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/TransformSortToStreamSort.java
@@ -20,6 +20,11 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations;
import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.GroupNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.StreamSortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.UnionNode;
import org.apache.iotdb.db.queryengine.common.MPPQueryContext;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor;
@@ -27,15 +32,10 @@ import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema;
import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CteScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GroupNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.InformationSchemaTableScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode;
import java.util.Map;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/UnaliasSymbolReferences.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/UnaliasSymbolReferences.java
index ec0a04b66ea..7f2db2b0f98 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/UnaliasSymbolReferences.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/UnaliasSymbolReferences.java
@@ -19,9 +19,31 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AssignUniqueId;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.EnforceSingleRowNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FilterNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.GapFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.GroupNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LimitNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LinearFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.MarkDistinctNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OffsetNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OutputNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.PatternRecognitionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.PreviousFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.RowNumberNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SemiJoinNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TableFunctionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TableFunctionProcessorNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKRankingNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.UnionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ValueFillNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema;
@@ -33,39 +55,17 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator;
import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.DeterminismEvaluator;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ApplyNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CopyToNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CteScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.EnforceSingleRowNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExceptNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExplainAnalyzeNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GapFillNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GroupNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.InformationSchemaTableScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntersectNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntoNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LinearFillNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MarkDistinctNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PatternRecognitionNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PreviousFillNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.RowNumberNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SemiJoinNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionProcessorNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKRankingNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeDeviceViewScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValueFillNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullLiteral;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference;
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/Util.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/Util.java
index 706b24a567b..8f2496d3e2b 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/Util.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/Util.java
@@ -20,6 +20,7 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations;
import org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinAggregationFunction;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.common.QueryId;
import org.apache.iotdb.db.queryengine.plan.relational.function.BoundSignature;
import org.apache.iotdb.db.queryengine.plan.relational.function.FunctionId;
@@ -29,7 +30,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.ResolvedFunction;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTreeDeviceViewScanNode;
@@ -44,10 +44,10 @@ import java.util.Map;
import java.util.Optional;
import static com.google.common.base.Preconditions.checkState;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.FINAL;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.INTERMEDIATE;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.PARTIAL;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.SINGLE;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.Step.FINAL;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.Step.INTERMEDIATE;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.Step.PARTIAL;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.Step.SINGLE;
public class Util {
private Util() {}
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/IrRowPatternOptimizationTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/IrRowPatternOptimizationTest.java
index 609ec847166..8af1e0e4ec1 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/IrRowPatternOptimizationTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/IrRowPatternOptimizationTest.java
@@ -19,25 +19,25 @@
package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrPatternAlternationOptimizer;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrRowPattern;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrRowPatternFlattener;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrPatternAlternationOptimizer;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrRowPattern;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrRowPatternFlattener;
import org.junit.Assert;
import org.junit.Test;
import java.util.Optional;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.alternation;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.concatenation;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.empty;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.excluded;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.label;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.permutation;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.plusQuantified;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.questionMarkQuantified;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.rangeQuantified;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.starQuantified;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.Patterns.alternation;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.Patterns.concatenation;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.Patterns.empty;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.Patterns.excluded;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.Patterns.label;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.Patterns.permutation;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.Patterns.plusQuantified;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.Patterns.questionMarkQuantified;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.Patterns.rangeQuantified;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.Patterns.starQuantified;
public class IrRowPatternOptimizationTest {
@Test
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/MatcherTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/MatcherTest.java
index 5c6c6da62cd..b520b9c63dc 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/MatcherTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/MatcherTest.java
@@ -19,14 +19,14 @@
package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrLabel;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrRowPattern;
import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher.ArrayView;
import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher.IrRowPatternToProgramRewriter;
import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher.MatchResult;
import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher.Matcher;
import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher.Program;
import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.Partition;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrLabel;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrRowPattern;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
@@ -36,15 +36,15 @@ import org.junit.Test;
import java.util.Map;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.alternation;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.concatenation;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.end;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.excluded;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.label;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.permutation;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.questionMarkQuantified;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.starQuantified;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.start;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.Patterns.alternation;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.Patterns.concatenation;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.Patterns.end;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.Patterns.excluded;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.Patterns.label;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.Patterns.permutation;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.Patterns.questionMarkQuantified;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.Patterns.starQuantified;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.Patterns.start;
import static org.mockito.Mockito.mock;
public class MatcherTest {
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/TopKRankingOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/TopKRankingOperatorTest.java
index c4c9644be48..a6677411139 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/TopKRankingOperatorTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/TopKRankingOperatorTest.java
@@ -21,6 +21,7 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.window;
import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKRankingNode;
import org.apache.iotdb.db.queryengine.common.FragmentInstanceId;
import org.apache.iotdb.db.queryengine.common.PlanFragmentId;
import org.apache.iotdb.db.queryengine.common.QueryId;
@@ -31,7 +32,6 @@ import org.apache.iotdb.db.queryengine.execution.operator.Operator;
import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext;
import org.apache.iotdb.db.queryengine.execution.operator.process.TreeLinearFillOperator;
import org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKRankingNode;
import org.apache.tsfile.common.conf.TSFileConfig;
import org.apache.tsfile.enums.TSDataType;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/WindowNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/WindowNodeSerdeTest.java
index 92829ef5b38..b7c6bb3c5ab 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/WindowNodeSerdeTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/WindowNodeSerdeTest.java
@@ -22,6 +22,7 @@ package org.apache.iotdb.db.queryengine.plan.planner.node.process;
import org.apache.iotdb.commons.exception.IllegalPathException;
import org.apache.iotdb.commons.path.MeasurementPath;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.plan.planner.node.PlanNodeDeserializeHelper;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SeriesScanNode;
@@ -34,7 +35,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.DataOrganizationS
import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme;
import org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier;
import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AggregationCornerCaseTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AggregationCornerCaseTest.java
index b9d38cfd357..0a0866de6c6 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AggregationCornerCaseTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AggregationCornerCaseTest.java
@@ -21,6 +21,7 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer;
import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.common.FragmentInstanceId;
import org.apache.iotdb.db.queryengine.common.PlanFragmentId;
import org.apache.iotdb.db.queryengine.common.QueryId;
@@ -34,7 +35,6 @@ import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggr
import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.HashAggregationOperator;
import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.StreamingHashAggregationOperator;
import org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
import com.google.common.collect.ImmutableList;
import com.google.common.util.concurrent.ListenableFuture;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AggregationTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AggregationTest.java
index 2227a26f93e..0a46d62af6c 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AggregationTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AggregationTest.java
@@ -35,6 +35,10 @@ import org.junit.Test;
import java.util.Optional;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.Step.FINAL;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.Step.INTERMEDIATE;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.Step.PARTIAL;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.Step.SINGLE;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanAssert.assertPlan;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.aggregation;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.aggregationFunction;
@@ -48,10 +52,6 @@ import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.project;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.singleGroupingSet;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.tableScan;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.FINAL;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.INTERMEDIATE;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.PARTIAL;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.SINGLE;
import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression.Operator.ADD;
import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression.Operator.MULTIPLY;
import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.LESS_THAN;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AnalyzerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AnalyzerTest.java
index da39a91dd61..5fd29636d7f 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AnalyzerTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AnalyzerTest.java
@@ -32,8 +32,12 @@ import org.apache.iotdb.commons.partition.executor.SeriesPartitionExecutor;
import org.apache.iotdb.commons.schema.table.InsertNodeMeasurementInfo;
import org.apache.iotdb.commons.schema.table.TsTable;
import org.apache.iotdb.db.conf.IoTDBDescriptor;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.CollectNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FilterNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LimitNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OffsetNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OutputNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.protocol.session.IClientSession;
import org.apache.iotdb.db.protocol.session.InternalClientSession;
import org.apache.iotdb.db.queryengine.common.MPPQueryContext;
@@ -60,12 +64,8 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator;
import org.apache.iotdb.db.queryengine.plan.relational.planner.TableLogicalPlanner;
import org.apache.iotdb.db.queryengine.plan.relational.planner.distribute.TableDistributedPlanner;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CollectNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.security.AccessControl;
import org.apache.iotdb.db.queryengine.plan.relational.security.AllowAllAccessControl;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/DistinctTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/DistinctTest.java
index 6cccf387a66..fe25406826a 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/DistinctTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/DistinctTest.java
@@ -30,6 +30,7 @@ import org.junit.Test;
import java.util.Optional;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.Step.SINGLE;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanAssert.assertPlan;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.aggregation;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.aggregationFunction;
@@ -43,7 +44,6 @@ import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.project;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.singleGroupingSet;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.tableScan;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.SINGLE;
public class DistinctTest {
// ==================================================================
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/InsertIntoQueryTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/InsertIntoQueryTest.java
index 519f8ffecc2..4dab1896c46 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/InsertIntoQueryTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/InsertIntoQueryTest.java
@@ -21,6 +21,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer;
import org.apache.iotdb.db.conf.IoTDBDescriptor;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LimitNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OutputNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.StreamSortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.DistributedQueryPlan;
import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
@@ -31,9 +34,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.distribute.TableD
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntoNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode;
import org.junit.BeforeClass;
import org.junit.Test;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/JoinTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/JoinTest.java
index 8f3921584f3..9d083e7ded8 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/JoinTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/JoinTest.java
@@ -23,6 +23,12 @@ import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LimitNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.MergeSortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OffsetNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OutputNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKNode;
import org.apache.iotdb.db.queryengine.common.FragmentInstanceId;
import org.apache.iotdb.db.queryengine.common.PlanFragmentId;
import org.apache.iotdb.db.queryengine.common.QueryId;
@@ -45,12 +51,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMa
import org.apache.iotdb.db.queryengine.plan.relational.planner.distribute.TableDistributedPlanner;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MergeSortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference;
@@ -72,6 +72,8 @@ import java.util.Collections;
import java.util.List;
import java.util.Optional;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.Step.FINAL;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.Step.PARTIAL;
import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode.JoinType.INNER;
import static org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext.createFragmentInstanceContext;
import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.AbstractTableScanOperator.TIME_COLUMN_TEMPLATE;
@@ -101,8 +103,6 @@ import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.singleGroupingSet;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.sort;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.tableScan;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.FINAL;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.PARTIAL;
import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.EQUAL;
import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN;
import static org.junit.Assert.assertEquals;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/LimitOffsetPushDownTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/LimitOffsetPushDownTest.java
index d15ebf4f874..2c0b41e6557 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/LimitOffsetPushDownTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/LimitOffsetPushDownTest.java
@@ -21,7 +21,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer;
import org.apache.iotdb.commons.conf.IoTDBConstant;
import org.apache.iotdb.db.conf.IoTDBDescriptor;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.CollectNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LimitNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.StreamSortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKNode;
import org.apache.iotdb.db.protocol.session.IClientSession;
import org.apache.iotdb.db.queryengine.common.QueryId;
import org.apache.iotdb.db.queryengine.common.SessionInfo;
@@ -33,12 +37,8 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.PlanTester;
import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator;
import org.apache.iotdb.db.queryengine.plan.relational.planner.TableLogicalPlanner;
import org.apache.iotdb.db.queryengine.plan.relational.planner.distribute.TableDistributedPlanner;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CollectNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode;
import org.junit.BeforeClass;
import org.junit.Test;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/PushAggregationThroughUnionTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/PushAggregationThroughUnionTest.java
index 722c8ce992d..2e98fd65665 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/PushAggregationThroughUnionTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/PushAggregationThroughUnionTest.java
@@ -20,6 +20,8 @@
package org.apache.iotdb.db.queryengine.plan.relational.analyzer;
import org.apache.iotdb.db.conf.IoTDBDescriptor;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OutputNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.DistributedQueryPlan;
import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
@@ -27,8 +29,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator;
import org.apache.iotdb.db.queryengine.plan.relational.planner.TableLogicalPlanner;
import org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern;
import org.apache.iotdb.db.queryengine.plan.relational.planner.distribute.TableDistributedPlanner;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/SortTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/SortTest.java
index 8547356dbdf..aaae574ca51 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/SortTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/SortTest.java
@@ -22,6 +22,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer;
import org.apache.iotdb.db.conf.IoTDBDescriptor;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FilterNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LimitNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.MergeSortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OffsetNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OutputNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.StreamSortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKNode;
import org.apache.iotdb.db.queryengine.common.MPPQueryContext;
import org.apache.iotdb.db.queryengine.execution.warnings.WarningCollector;
import org.apache.iotdb.db.queryengine.plan.planner.plan.DistributedQueryPlan;
@@ -34,12 +40,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.TableLogicalPlann
import org.apache.iotdb.db.queryengine.plan.relational.planner.distribute.TableDistributedPlanner;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MergeSortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode;
import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering;
import org.junit.BeforeClass;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/SubQueryTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/SubQueryTest.java
index 746bf06f535..fd37737d836 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/SubQueryTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/SubQueryTest.java
@@ -22,6 +22,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer;
import org.apache.iotdb.db.conf.IoTDBDescriptor;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FilterNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LimitNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OffsetNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OutputNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.StreamSortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.DistributedQueryPlan;
import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
@@ -32,11 +37,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.TableLogicalPlann
import org.apache.iotdb.db.queryengine.plan.relational.planner.distribute.TableDistributedPlanner;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode;
import org.junit.BeforeClass;
import org.junit.Test;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TSBSTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TSBSTest.java
index 9a041713120..9831957c36b 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TSBSTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TSBSTest.java
@@ -39,6 +39,10 @@ import org.junit.Test;
import java.util.Optional;
import static org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinScalarFunction.DATE_BIN;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.Step.FINAL;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.Step.INTERMEDIATE;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.Step.PARTIAL;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.Step.SINGLE;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanAssert.assertPlan;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.aggregation;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.aggregationFunction;
@@ -50,10 +54,6 @@ import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.output;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.project;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.singleGroupingSet;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.FINAL;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.INTERMEDIATE;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.PARTIAL;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.SINGLE;
import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression.Operator.DIVIDE;
import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression.Operator.MULTIPLY;
import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TestPlanBuilder.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TestPlanBuilder.java
index 4b65fc7f61c..bb1642fd045 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TestPlanBuilder.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TestPlanBuilder.java
@@ -22,6 +22,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FilterNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LimitNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OffsetNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OutputNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.DeviceEntry;
@@ -29,9 +32,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectN
import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TestUtils.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TestUtils.java
index 2f65a7ec5bf..9da0789e546 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TestUtils.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TestUtils.java
@@ -21,6 +21,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer;
import org.apache.iotdb.commons.conf.IoTDBConstant;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.MergeSortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SortNode;
import org.apache.iotdb.db.protocol.session.IClientSession;
import org.apache.iotdb.db.queryengine.common.MPPQueryContext;
import org.apache.iotdb.db.queryengine.common.QueryId;
@@ -31,8 +33,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MergeSortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement;
import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.SqlParser;
import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TreeViewTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TreeViewTest.java
index 1dcd7d5487a..bdbed5c3b3a 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TreeViewTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TreeViewTest.java
@@ -35,6 +35,9 @@ import org.junit.Test;
import java.util.Optional;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.Step.FINAL;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.Step.INTERMEDIATE;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.Step.PARTIAL;
import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.TestMetadata.DEVICE_VIEW_TEST_TABLE;
import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.TestMetadata.TREE_VIEW_DB;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanAssert.assertPlan;
@@ -50,9 +53,6 @@ import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.treeAlignedDeviceViewTableScan;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.treeDeviceViewTableScan;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.treeNonAlignedDeviceViewTableScan;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.FINAL;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.INTERMEDIATE;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.PARTIAL;
public class TreeViewTest {
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CorrelatedSubqueryTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CorrelatedSubqueryTest.java
index 8ed29e46fb5..320a2c9cf5e 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CorrelatedSubqueryTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CorrelatedSubqueryTest.java
@@ -36,6 +36,7 @@ import org.junit.Test;
import java.util.Collections;
import java.util.Optional;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.Step.SINGLE;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanAssert.assertPlan;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.aggregation;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.expression;
@@ -46,7 +47,6 @@ import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.singleGroupingSet;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.sort;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.tableScan;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.SINGLE;
public class CorrelatedSubqueryTest {
@Test
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CteMaterializerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CteMaterializerTest.java
index 431610b582b..74df8302999 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CteMaterializerTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CteMaterializerTest.java
@@ -57,6 +57,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Optional;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.Step.SINGLE;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanAssert.assertPlan;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.aggregation;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.aggregationFunction;
@@ -69,7 +70,6 @@ import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.singleGroupingSet;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.sort;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.tableScan;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.SINGLE;
import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN;
import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SortItem.NullOrdering.LAST;
import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SortItem.Ordering.ASCENDING;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PatternRecognitionNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PatternRecognitionNodeSerdeTest.java
index 7b9b9b4cc1c..2de79e3f399 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PatternRecognitionNodeSerdeTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PatternRecognitionNodeSerdeTest.java
@@ -22,18 +22,18 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner;
import org.apache.iotdb.commons.exception.IllegalPathException;
import org.apache.iotdb.commons.path.MeasurementPath;
import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.Measure;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.PatternRecognitionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.ExpressionAndValuePointers;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrLabel;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.IrRowPattern;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.LogicalIndexPointer;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.ScalarValuePointer;
import org.apache.iotdb.db.queryengine.plan.planner.node.PlanNodeDeserializeHelper;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SeriesScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Measure;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PatternRecognitionNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.RowsPerMatch;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SkipToPosition;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrLabel;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrRowPattern;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.LogicalIndexPointer;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ScalarValuePointer;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier;
@@ -57,10 +57,10 @@ import java.util.Map;
import java.util.Optional;
import java.util.Set;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.concatenation;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.excluded;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.label;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.starQuantified;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.Patterns.concatenation;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.Patterns.excluded;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.Patterns.label;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.rowpattern.rowpattern.Patterns.starQuantified;
import static org.junit.Assert.assertEquals;
public class PatternRecognitionNodeSerdeTest {
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/UncorrelatedSubqueryTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/UncorrelatedSubqueryTest.java
index 051f93ca041..0c41f692883 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/UncorrelatedSubqueryTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/UncorrelatedSubqueryTest.java
@@ -39,6 +39,9 @@ import org.mockito.Mockito;
import java.util.Collections;
import java.util.Optional;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.Step.FINAL;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.Step.PARTIAL;
+import static org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode.Step.SINGLE;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanAssert.assertPlan;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.aggregation;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.aggregationFunction;
@@ -54,9 +57,6 @@ import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.singleGroupingSet;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.sort;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.tableScan;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.FINAL;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.PARTIAL;
-import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.SINGLE;
import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.EQUAL;
import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN;
import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.LESS_THAN_OR_EQUAL;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationDeviceTableScanMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationDeviceTableScanMatcher.java
index ff47c33ec8f..af2da6b93fa 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationDeviceTableScanMatcher.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationDeviceTableScanMatcher.java
@@ -19,11 +19,11 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.common.SessionInfo;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode;
import com.google.common.collect.ImmutableSet;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationFunctionMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationFunctionMatcher.java
index 8e66c9f19e7..f13610286fa 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationFunctionMatcher.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationFunctionMatcher.java
@@ -19,11 +19,11 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.common.SessionInfo;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
import java.util.Map;
import java.util.Objects;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationMatcher.java
index ccfe2813ef5..24fcf56003f 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationMatcher.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationMatcher.java
@@ -19,11 +19,11 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.common.SessionInfo;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
import java.util.Collection;
import java.util.List;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationStepMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationStepMatcher.java
index 7c82a1646b8..abd5e53f3cd 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationStepMatcher.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationStepMatcher.java
@@ -19,10 +19,10 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.common.SessionInfo;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
import static com.google.common.base.MoreObjects.toStringHelper;
import static com.google.common.base.Preconditions.checkState;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AssignUniqueIdMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AssignUniqueIdMatcher.java
index 6ff4a6b9e4c..94331480350 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AssignUniqueIdMatcher.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AssignUniqueIdMatcher.java
@@ -19,11 +19,11 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AssignUniqueId;
import org.apache.iotdb.db.queryengine.common.SessionInfo;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId;
import java.util.Optional;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/ExpressionMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/ExpressionMatcher.java
index eb82e059b6c..310c3efb345 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/ExpressionMatcher.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/ExpressionMatcher.java
@@ -19,11 +19,11 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.common.SessionInfo;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
import com.google.common.collect.ImmutableList;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/GroupMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/GroupMatcher.java
index ff17bdfec3c..586bdb78416 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/GroupMatcher.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/GroupMatcher.java
@@ -19,10 +19,10 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.GroupNode;
import org.apache.iotdb.db.queryengine.common.SessionInfo;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GroupNode;
import java.util.List;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/IdentityProjectionMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/IdentityProjectionMatcher.java
index e9ed8b6084b..e9e2b1afb97 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/IdentityProjectionMatcher.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/IdentityProjectionMatcher.java
@@ -19,10 +19,10 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.common.SessionInfo;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import static com.google.common.base.Preconditions.checkState;
import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.MatchResult.NO_MATCH;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/MarkDistinctMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/MarkDistinctMatcher.java
index 27c74560f8d..a51251c6597 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/MarkDistinctMatcher.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/MarkDistinctMatcher.java
@@ -19,10 +19,10 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.MarkDistinctNode;
import org.apache.iotdb.db.queryengine.common.SessionInfo;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MarkDistinctNode;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/OffsetMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/OffsetMatcher.java
index 7fc084b9cf7..31ad4b3fb9e 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/OffsetMatcher.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/OffsetMatcher.java
@@ -19,10 +19,10 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OffsetNode;
import org.apache.iotdb.db.queryengine.common.SessionInfo;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode;
import static com.google.common.base.MoreObjects.toStringHelper;
import static com.google.common.base.Preconditions.checkState;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanMatchPattern.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanMatchPattern.java
index 84a988c821d..4735f71550a 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanMatchPattern.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanMatchPattern.java
@@ -19,9 +19,28 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AggregationNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.AssignUniqueId;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.CollectNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.EnforceSingleRowNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.FilterNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.GroupNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.JoinNode;
import org.apache.iotdb.db.node_commons.plan.relational.planner.node.LimitNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.MarkDistinctNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.MergeSortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OffsetNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.OutputNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.RowNumberNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SemiJoinNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.StreamSortNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TableFunctionProcessorNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKRankingNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.UnionNode;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.common.SessionInfo;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
@@ -29,37 +48,18 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.DataOrganizationS
import org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.GroupReference;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTreeDeviceViewScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AlignedAggregationTreeDeviceViewScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CollectNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CteScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.EnforceSingleRowNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExplainAnalyzeNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GroupNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.InformationSchemaTableScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MarkDistinctNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MergeSortNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.NonAlignedAggregationTreeDeviceViewScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.RowNumberNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SemiJoinNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionProcessorNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKRankingNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeAlignedDeviceViewScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeDeviceViewScanNode;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeNonAlignedDeviceViewScanNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DataType;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanMatchingVisitor.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanMatchingVisitor.java
index be4280b15db..1a35f6babf8 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanMatchingVisitor.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanMatchingVisitor.java
@@ -19,6 +19,7 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.common.SessionInfo;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor;
@@ -26,7 +27,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.GroupReference;
import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Lookup;
import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import java.util.List;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/SemiJoinMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/SemiJoinMatcher.java
index 7ee9192254e..534fe545dc7 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/SemiJoinMatcher.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/SemiJoinMatcher.java
@@ -19,10 +19,10 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SemiJoinNode;
import org.apache.iotdb.db.queryengine.common.SessionInfo;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SemiJoinNode;
import static com.google.common.base.MoreObjects.toStringHelper;
import static com.google.common.base.Preconditions.checkState;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/SortMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/SortMatcher.java
index 3a95f579b31..acf666e2615 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/SortMatcher.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/SortMatcher.java
@@ -19,11 +19,11 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.SortNode;
import org.apache.iotdb.db.queryengine.common.SessionInfo;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
import org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.Ordering;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode;
import java.util.List;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/StrictAssignedSymbolsMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/StrictAssignedSymbolsMatcher.java
index 706efd4eb67..cc27d1321ae 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/StrictAssignedSymbolsMatcher.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/StrictAssignedSymbolsMatcher.java
@@ -19,11 +19,11 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.ProjectNode;
import org.apache.iotdb.db.queryengine.common.SessionInfo;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode;
import com.google.common.collect.ImmutableSet;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/TableFunctionProcessorMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/TableFunctionProcessorMatcher.java
index a272dba7e38..f830a604c48 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/TableFunctionProcessorMatcher.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/TableFunctionProcessorMatcher.java
@@ -19,11 +19,11 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TableFunctionProcessorNode;
import org.apache.iotdb.db.queryengine.common.SessionInfo;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionProcessorNode;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference;
import org.apache.iotdb.udf.api.relational.table.TableFunctionHandle;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/TopKMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/TopKMatcher.java
index 018a693e55c..4c9b332da67 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/TopKMatcher.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/TopKMatcher.java
@@ -19,10 +19,10 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.TopKNode;
import org.apache.iotdb.db.queryengine.common.SessionInfo;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode;
import java.util.List;
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/WindowFunctionMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/WindowFunctionMatcher.java
index 8d360cc1f8d..9a028eb5623 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/WindowFunctionMatcher.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/WindowFunctionMatcher.java
@@ -19,12 +19,12 @@
package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions;
+import org.apache.iotdb.db.node_commons.plan.relational.planner.node.WindowNode;
import org.apache.iotdb.db.queryengine.common.SessionInfo;
import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme;
import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol;
-import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode;
import java.util.List;
import java.util.Objects;