diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java index b2f59fdb55..8dd0ad742e 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java @@ -273,7 +273,7 @@ public class PhysicalPlanTranslator extends DefaultPlanVisitor validOutputIds = distribute.getOutputExprIds(); if (distribute.child() instanceof PhysicalHashAggregate) { @@ -472,24 +472,24 @@ public class PhysicalPlanTranslator extends DefaultPlanVisitor tupleIds = new ArrayList<>(); tupleIds.add(tupleDescriptor.getId()); - EmptySetNode emptySetNode = new EmptySetNode(context.nextPlanNodeId(), tupleIds); + EmptySetNode emptySetNode = new EmptySetNode(emptyRelation.translatePlanNodeId(), tupleIds); PlanFragment planFragment = createPlanFragment(emptySetNode, DataPartition.UNPARTITIONED, emptyRelation); @@ -546,7 +546,7 @@ public class PhysicalPlanTranslator extends DefaultPlanVisitor slots = esScan.getOutput(); ExternalTable table = esScan.getTable(); TupleDescriptor tupleDescriptor = generateTupleDesc(slots, table, context); - EsScanNode esScanNode = new EsScanNode(context.nextPlanNodeId(), tupleDescriptor, true); + EsScanNode esScanNode = new EsScanNode(esScan.translatePlanNodeId(), tupleDescriptor, true); esScanNode.addConjuncts(translateToLegacyConjuncts(esScan.getConjuncts())); Utils.execWithUncheckedException(esScanNode::init); context.addScanNode(esScanNode); @@ -568,7 +568,7 @@ public class PhysicalPlanTranslator extends DefaultPlanVisitor slots = jdbcScan.getOutput(); TableIf table = jdbcScan.getTable(); TupleDescriptor tupleDescriptor = generateTupleDesc(slots, table, context); - JdbcScanNode jdbcScanNode = new JdbcScanNode(context.nextPlanNodeId(), tupleDescriptor, + JdbcScanNode jdbcScanNode = new JdbcScanNode(jdbcScan.translatePlanNodeId(), tupleDescriptor, table instanceof JdbcExternalTable); jdbcScanNode.addConjuncts(translateToLegacyConjuncts(jdbcScan.getConjuncts())); Utils.execWithUncheckedException(jdbcScanNode::init); @@ -596,8 +596,7 @@ public class PhysicalPlanTranslator extends DefaultPlanVisitor()); @@ -718,7 +717,7 @@ public class PhysicalPlanTranslator extends DefaultPlanVisitor slots = ImmutableList.copyOf(schemaScan.getOutput()); TupleDescriptor tupleDescriptor = generateTupleDesc(slots, table, context); - SchemaScanNode scanNode = new SchemaScanNode(context.nextPlanNodeId(), tupleDescriptor); + SchemaScanNode scanNode = new SchemaScanNode(schemaScan.translatePlanNodeId(), tupleDescriptor); context.getRuntimeTranslator().ifPresent( runtimeFilterGenerator -> runtimeFilterGenerator.getTargetOnScanNode(schemaScan.getRelationId()) .forEach(expr -> runtimeFilterGenerator.translateRuntimeFilterTarget(expr, scanNode, context) @@ -738,7 +737,7 @@ public class PhysicalPlanTranslator extends DefaultPlanVisitor runtimeFilterGenerator.getTargetOnScanNode(tvfRelation.getRelationId()) @@ -816,7 +815,7 @@ public class PhysicalPlanTranslator extends DefaultPlanVisitor ExpressionTranslator.translate(e, context)) .collect(Collectors.toList()); - HashJoinNode hashJoinNode = new HashJoinNode(context.nextPlanNodeId(), leftPlanRoot, + HashJoinNode hashJoinNode = new HashJoinNode(hashJoin.translatePlanNodeId(), leftPlanRoot, rightPlanRoot, JoinType.toJoinOperator(joinType), execEqConjuncts, Lists.newArrayList(), null, null, null, hashJoin.isMarkJoin()); @@ -1366,8 +1365,7 @@ public class PhysicalPlanTranslator extends DefaultPlanVisitor> public int arity() { return children.size(); } + + /** + * used for PhysicalPlanTranslator only + * @return PlanNodeId + */ + public PlanNodeId translatePlanNodeId() { + return id.toPlanNodeId(); + } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/ObjectId.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/ObjectId.java index 1686ee257b..12cfa4c337 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/ObjectId.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/ObjectId.java @@ -20,6 +20,7 @@ package org.apache.doris.nereids.trees.plans; import org.apache.doris.common.Id; import org.apache.doris.common.IdGenerator; import org.apache.doris.nereids.trees.expressions.StatementScopeIdGenerator; +import org.apache.doris.planner.PlanNodeId; /** * relation id @@ -46,4 +47,8 @@ public class ObjectId extends Id { public String toString() { return "ObjectId#" + id; } + + public PlanNodeId toPlanNodeId() { + return new PlanNodeId(id); + } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalOlapScan.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalOlapScan.java index 5e5bc52041..c7f4a71835 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalOlapScan.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalOlapScan.java @@ -120,7 +120,7 @@ public class PhysicalOlapScan extends PhysicalCatalogRelation implements OlapSca @Override public String toString() { - return Utils.toSqlString("PhysicalOlapScan[" + relationId.asInt() + "]" + getGroupIdWithPrefix(), + return Utils.toSqlString("PhysicalOlapScan[" + id.asInt() + "]" + getGroupIdWithPrefix(), "qualified", Utils.qualifiedName(qualifier, table.getName()), "stats", statistics, "fr", getMutableState(AbstractPlan.FRAGMENT_ID) ); diff --git a/regression-test/suites/nereids_syntax_p0/agg_4_phase.groovy b/regression-test/suites/nereids_syntax_p0/agg_4_phase.groovy index a672f8dee3..4a3e60afb7 100644 --- a/regression-test/suites/nereids_syntax_p0/agg_4_phase.groovy +++ b/regression-test/suites/nereids_syntax_p0/agg_4_phase.groovy @@ -49,11 +49,11 @@ suite("agg_4_phase") { """ explain{ sql(test_sql) - contains "5:VAGGREGATE (merge finalize)" - contains "4:VEXCHANGE" - contains "3:VAGGREGATE (update serialize)" - contains "2:VAGGREGATE (merge serialize)" - contains "1:VAGGREGATE (update serialize)" + contains ":VAGGREGATE (merge finalize)" + contains ":VEXCHANGE" + contains ":VAGGREGATE (update serialize)" + contains ":VAGGREGATE (merge serialize)" + contains ":VAGGREGATE (update serialize)" } qt_4phase (test_sql) } \ No newline at end of file