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 bf09235c5c21c..6acc8ca55cce2 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 @@ -343,17 +343,7 @@ private RelationPlan processPhysicalTable(Table table, Scope scope) { final ImmutableList.Builder outputSymbolsBuilder = ImmutableList.builder(); final ImmutableMap.Builder symbolToColumnSchema = ImmutableMap.builder(); final Collection fields = scope.getRelationType().getAllFields(); - final QualifiedName qualifiedName = analysis.getRelationName(table); - - if (!qualifiedName.getPrefix().isPresent()) { - throw new IllegalStateException( - DataNodeQueryMessages.TABLE + table.getName() + " has no prefix!"); - } - - final QualifiedObjectName qualifiedObjectName = - new QualifiedObjectName( - qualifiedName.getPrefix().map(QualifiedName::toString).orElse(null), - qualifiedName.getSuffix()); + final QualifiedObjectName qualifiedObjectName = getQualifiedObjectName(table, analysis); // on the basis of that the order of fields is same with the column category order of segments // in DeviceEntry @@ -411,6 +401,19 @@ private RelationPlan processPhysicalTable(Table table, Scope scope) { return new RelationPlan(tableScanNode, scope, outputSymbols, outerContext); } + public static QualifiedObjectName getQualifiedObjectName(Table table, Analysis analysis) { + final QualifiedName qualifiedName = analysis.getRelationName(table); + if (!qualifiedName.getPrefix().isPresent()) { + throw new IllegalStateException("Table " + table.getName() + " has no prefix!"); + } + + final QualifiedObjectName qualifiedObjectName = + new QualifiedObjectName( + qualifiedName.getPrefix().map(QualifiedName::toString).orElse(null), + qualifiedName.getSuffix()); + return qualifiedObjectName; + } + @Override public RelationPlan visitQuerySpecification(final QuerySpecification node, final Void context) { return new QueryPlanner( diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/PlanNodeType.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/PlanNodeType.java index 76a3b2f5e280f..e36796fca43c3 100644 --- a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/PlanNodeType.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/PlanNodeType.java @@ -201,6 +201,8 @@ public enum PlanNodeType { ALIGNED_AGGREGATION_TREE_DEVICE_VIEW_SCAN_NODE((short) 1041), NON_ALIGNED_AGGREGATION_TREE_DEVICE_VIEW_SCAN_NODE((short) 1042), TABLE_NEXT_FILL_NODE((short) 1043), + SESSION_SCAN_NODE((short) 1044), + EVENT_SCAN_NODE((short) 1045), RELATIONAL_INSERT_TABLET((short) 2000), RELATIONAL_INSERT_ROW((short) 2001),