This is an automated email from the ASF dual-hosted git repository.
englefly pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 3231fab8c2 [feature](nereids) add unique id for groupExpression and
plan node (#17628)
3231fab8c2 is described below
commit 3231fab8c2f24021a756c77e6cf8effbbc804503
Author: minghong <[email protected]>
AuthorDate: Sat Mar 11 13:23:41 2023 +0800
[feature](nereids) add unique id for groupExpression and plan node (#17628)
* add unqiue id for groupExpression and plan node
* fix ut
---
.../java/org/apache/doris/nereids/StatementContext.java | 8 ++++----
.../doris/nereids/analyzer/UnboundOneRowRelation.java | 10 +++++-----
.../apache/doris/nereids/analyzer/UnboundRelation.java | 12 ++++++------
.../doris/nereids/analyzer/UnboundTVFRelation.java | 10 +++++-----
.../glue/translator/RuntimeFilterTranslator.java | 4 ++--
.../org/apache/doris/nereids/memo/GroupExpression.java | 7 ++++++-
.../nereids/processor/post/RuntimeFilterContext.java | 12 ++++++------
.../nereids/processor/post/RuntimeFilterGenerator.java | 8 ++++----
.../apache/doris/nereids/trees/AbstractTreeNode.java | 4 +++-
.../apache/doris/nereids/trees/expressions/Alias.java | 2 +-
.../apache/doris/nereids/trees/expressions/ExprId.java | 2 +-
.../doris/nereids/trees/expressions/SlotReference.java | 8 ++++----
...pressionUtil.java => StatementScopeIdGenerator.java} | 11 ++++++++++-
.../nereids/trees/expressions/VirtualSlotReference.java | 2 +-
.../trees/plans/{RelationId.java => ObjectId.java} | 17 +++++++++--------
.../nereids/trees/plans/logical/LogicalAggregate.java | 2 +-
.../nereids/trees/plans/logical/LogicalEsScan.java | 6 +++---
.../nereids/trees/plans/logical/LogicalFileScan.java | 6 +++---
.../nereids/trees/plans/logical/LogicalFilter.java | 4 +++-
.../nereids/trees/plans/logical/LogicalJdbcScan.java | 6 +++---
.../doris/nereids/trees/plans/logical/LogicalJoin.java | 2 +-
.../nereids/trees/plans/logical/LogicalOlapScan.java | 14 +++++++-------
.../nereids/trees/plans/logical/LogicalProject.java | 2 +-
.../nereids/trees/plans/logical/LogicalRelation.java | 12 ++++++------
.../nereids/trees/plans/logical/LogicalSchemaScan.java | 6 +++---
.../doris/nereids/trees/plans/logical/LogicalSort.java | 2 +-
.../nereids/trees/plans/logical/LogicalTVFRelation.java | 6 +++---
.../doris/nereids/trees/plans/logical/RelationUtil.java | 8 ++++----
.../trees/plans/physical/PhysicalDistribute.java | 2 +-
.../nereids/trees/plans/physical/PhysicalEsScan.java | 6 +++---
.../nereids/trees/plans/physical/PhysicalFileScan.java | 6 +++---
.../nereids/trees/plans/physical/PhysicalFilter.java | 2 +-
.../trees/plans/physical/PhysicalHashAggregate.java | 2 +-
.../nereids/trees/plans/physical/PhysicalHashJoin.java | 2 +-
.../nereids/trees/plans/physical/PhysicalJdbcScan.java | 6 +++---
.../nereids/trees/plans/physical/PhysicalOlapScan.java | 6 +++---
.../nereids/trees/plans/physical/PhysicalProject.java | 2 +-
.../nereids/trees/plans/physical/PhysicalRelation.java | 10 +++++-----
.../trees/plans/physical/PhysicalSchemaScan.java | 6 +++---
.../trees/plans/physical/PhysicalTVFRelation.java | 6 +++---
.../nereids/trees/plans/physical/PhysicalWindow.java | 2 +-
.../nereids/datasets/tpch/AnalyzeCheckTestBase.java | 4 ++--
.../postprocess/MergeProjectPostProcessTest.java | 4 ++--
.../nereids/rules/analysis/AnalyzeSubQueryTest.java | 6 +++---
.../rules/analysis/AnalyzeWhereSubqueryTest.java | 6 +++---
.../nereids/rules/analysis/BindSlotReferenceTest.java | 4 ++--
.../doris/nereids/rules/analysis/RegisterCTETest.java | 6 +++---
.../rules/exploration/join/OuterJoinAssocTest.java | 4 ++--
.../expression/rewrite/ExpressionRewriteTestHelper.java | 4 ++--
.../rules/expression/rewrite/SimplifyRangeTest.java | 4 ++--
.../rewrite/logical/EliminateGroupByConstantTest.java | 12 ++++++------
.../rules/rewrite/logical/EliminateOuterJoinTest.java | 4 ++--
.../rules/rewrite/logical/PruneOlapScanTabletTest.java | 4 ++--
.../logical/PushdownExpressionsInHashConditionTest.java | 4 ++--
.../rules/rewrite/logical/PushdownLimitTest.java | 6 +++---
.../org/apache/doris/nereids/sqltest/SqlTestBase.java | 4 ++--
.../doris/nereids/trees/expressions/ViewTest.java | 4 ++--
.../doris/nereids/trees/plans/PlanEqualsTest.java | 2 +-
.../doris/nereids/trees/plans/PlanToStringTest.java | 12 ++++++------
.../org/apache/doris/nereids/util/PlanConstructor.java | 8 ++++----
.../org/apache/doris/nereids/util/ReadLockTest.java | 6 +++++-
.../org/apache/doris/utframe/TestWithFeService.java | 4 ++--
62 files changed, 193 insertions(+), 170 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/StatementContext.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/StatementContext.java
index 51a62d4ad4..c1ed58c307 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/StatementContext.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/StatementContext.java
@@ -21,7 +21,7 @@ import org.apache.doris.analysis.StatementBase;
import org.apache.doris.common.IdGenerator;
import org.apache.doris.nereids.rules.analysis.ColumnAliasGenerator;
import org.apache.doris.nereids.trees.expressions.ExprId;
-import org.apache.doris.nereids.trees.plans.RelationId;
+import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.qe.ConnectContext;
import org.apache.doris.qe.OriginStatement;
@@ -47,7 +47,7 @@ public class StatementContext {
private final IdGenerator<ExprId> exprIdGenerator =
ExprId.createGenerator();
- private final IdGenerator<RelationId> relationIdGenerator =
RelationId.createGenerator();
+ private final IdGenerator<ObjectId> objectIdGenerator =
ObjectId.createGenerator();
@GuardedBy("this")
private final Map<String, Supplier<Object>> contextCacheMap =
Maps.newLinkedHashMap();
@@ -101,8 +101,8 @@ public class StatementContext {
return exprIdGenerator.getNextId();
}
- public RelationId getNextRelationId() {
- return relationIdGenerator.getNextId();
+ public ObjectId getNextObjectId() {
+ return objectIdGenerator.getNextId();
}
public void setParsedStatement(StatementBase parsedStatement) {
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/analyzer/UnboundOneRowRelation.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/analyzer/UnboundOneRowRelation.java
index 705238aee7..70df37f33e 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/analyzer/UnboundOneRowRelation.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/analyzer/UnboundOneRowRelation.java
@@ -24,9 +24,9 @@ import
org.apache.doris.nereids.properties.UnboundLogicalProperties;
import org.apache.doris.nereids.trees.expressions.Expression;
import org.apache.doris.nereids.trees.expressions.NamedExpression;
import org.apache.doris.nereids.trees.expressions.Slot;
+import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.nereids.trees.plans.Plan;
import org.apache.doris.nereids.trees.plans.PlanType;
-import org.apache.doris.nereids.trees.plans.RelationId;
import org.apache.doris.nereids.trees.plans.algebra.OneRowRelation;
import org.apache.doris.nereids.trees.plans.logical.LogicalLeaf;
import org.apache.doris.nereids.trees.plans.visitor.PlanVisitor;
@@ -45,14 +45,14 @@ import java.util.Optional;
*/
public class UnboundOneRowRelation extends LogicalLeaf implements Unbound,
OneRowRelation {
- private final RelationId id;
+ private final ObjectId id;
private final List<NamedExpression> projects;
- public UnboundOneRowRelation(RelationId id, List<NamedExpression>
projects) {
+ public UnboundOneRowRelation(ObjectId id, List<NamedExpression> projects) {
this(id, projects, Optional.empty(), Optional.empty());
}
- private UnboundOneRowRelation(RelationId id,
+ private UnboundOneRowRelation(ObjectId id,
List<NamedExpression> projects,
Optional<GroupExpression> groupExpression,
Optional<LogicalProperties> logicalProperties) {
@@ -63,7 +63,7 @@ public class UnboundOneRowRelation extends LogicalLeaf
implements Unbound, OneRo
this.projects = ImmutableList.copyOf(projects);
}
- public RelationId getId() {
+ public ObjectId getId() {
return id;
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/analyzer/UnboundRelation.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/analyzer/UnboundRelation.java
index 431d75611f..d5710e19a9 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/analyzer/UnboundRelation.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/analyzer/UnboundRelation.java
@@ -24,9 +24,9 @@ import org.apache.doris.nereids.properties.LogicalProperties;
import org.apache.doris.nereids.properties.UnboundLogicalProperties;
import org.apache.doris.nereids.trees.expressions.Expression;
import org.apache.doris.nereids.trees.expressions.Slot;
+import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.nereids.trees.plans.Plan;
import org.apache.doris.nereids.trees.plans.PlanType;
-import org.apache.doris.nereids.trees.plans.RelationId;
import org.apache.doris.nereids.trees.plans.logical.LogicalRelation;
import org.apache.doris.nereids.trees.plans.visitor.PlanVisitor;
import org.apache.doris.nereids.util.Utils;
@@ -50,20 +50,20 @@ public class UnboundRelation extends LogicalRelation
implements Unbound {
private final boolean isTempPart;
private final List<String> hints;
- public UnboundRelation(RelationId id, List<String> nameParts) {
+ public UnboundRelation(ObjectId id, List<String> nameParts) {
this(id, nameParts, Optional.empty(), Optional.empty(),
ImmutableList.of(), false, ImmutableList.of());
}
- public UnboundRelation(RelationId id, List<String> nameParts, List<String>
partNames, boolean isTempPart) {
+ public UnboundRelation(ObjectId id, List<String> nameParts, List<String>
partNames, boolean isTempPart) {
this(id, nameParts, Optional.empty(), Optional.empty(), partNames,
isTempPart, ImmutableList.of());
}
- public UnboundRelation(RelationId id, List<String> nameParts, List<String>
partNames, boolean isTempPart,
+ public UnboundRelation(ObjectId id, List<String> nameParts, List<String>
partNames, boolean isTempPart,
List<String> hints) {
this(id, nameParts, Optional.empty(), Optional.empty(), partNames,
isTempPart, hints);
}
- public UnboundRelation(RelationId id, List<String> nameParts,
Optional<GroupExpression> groupExpression,
+ public UnboundRelation(ObjectId id, List<String> nameParts,
Optional<GroupExpression> groupExpression,
Optional<LogicalProperties> logicalProperties, List<String>
partNames, boolean isTempPart,
List<String> hints) {
super(id, PlanType.LOGICAL_UNBOUND_RELATION, groupExpression,
logicalProperties);
@@ -132,7 +132,7 @@ public class UnboundRelation extends LogicalRelation
implements Unbound {
throw new
UnsupportedOperationException(this.getClass().getSimpleName() + " don't support
getExpression()");
}
- public RelationId getId() {
+ public ObjectId getId() {
return id;
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/analyzer/UnboundTVFRelation.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/analyzer/UnboundTVFRelation.java
index fa63fa7d5d..cab081b2e3 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/analyzer/UnboundTVFRelation.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/analyzer/UnboundTVFRelation.java
@@ -25,9 +25,9 @@ import org.apache.doris.nereids.trees.expressions.Expression;
import org.apache.doris.nereids.trees.expressions.Slot;
import org.apache.doris.nereids.trees.expressions.TVFProperties;
import
org.apache.doris.nereids.trees.expressions.functions.table.TableValuedFunction;
+import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.nereids.trees.plans.Plan;
import org.apache.doris.nereids.trees.plans.PlanType;
-import org.apache.doris.nereids.trees.plans.RelationId;
import org.apache.doris.nereids.trees.plans.algebra.TVFRelation;
import org.apache.doris.nereids.trees.plans.logical.LogicalLeaf;
import org.apache.doris.nereids.trees.plans.visitor.PlanVisitor;
@@ -40,15 +40,15 @@ import java.util.Optional;
/** UnboundTVFRelation */
public class UnboundTVFRelation extends LogicalLeaf implements TVFRelation,
Unbound {
- private final RelationId id;
+ private final ObjectId id;
private final String functionName;
private final TVFProperties properties;
- public UnboundTVFRelation(RelationId id, String functionName,
TVFProperties properties) {
+ public UnboundTVFRelation(ObjectId id, String functionName, TVFProperties
properties) {
this(id, functionName, properties, Optional.empty(), Optional.empty());
}
- public UnboundTVFRelation(RelationId id, String functionName,
TVFProperties properties,
+ public UnboundTVFRelation(ObjectId id, String functionName, TVFProperties
properties,
Optional<GroupExpression> groupExpression,
Optional<LogicalProperties> logicalProperties) {
super(PlanType.LOGICAL_UNBOUND_TVF_RELATION, groupExpression,
logicalProperties);
this.id = id;
@@ -64,7 +64,7 @@ public class UnboundTVFRelation extends LogicalLeaf
implements TVFRelation, Unbo
return properties;
}
- public RelationId getId() {
+ public ObjectId getId() {
return id;
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/RuntimeFilterTranslator.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/RuntimeFilterTranslator.java
index 65714c027c..a68d7c64d5 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/RuntimeFilterTranslator.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/RuntimeFilterTranslator.java
@@ -27,7 +27,7 @@ import
org.apache.doris.nereids.processor.post.RuntimeFilterContext;
import org.apache.doris.nereids.trees.expressions.ExprId;
import org.apache.doris.nereids.trees.expressions.Slot;
import org.apache.doris.nereids.trees.expressions.SlotReference;
-import org.apache.doris.nereids.trees.plans.RelationId;
+import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.nereids.trees.plans.physical.AbstractPhysicalJoin;
import org.apache.doris.nereids.trees.plans.physical.RuntimeFilter;
import org.apache.doris.planner.HashJoinNode;
@@ -60,7 +60,7 @@ public class RuntimeFilterTranslator {
return context.getRuntimeFilterOnHashJoinNode(join);
}
- public List<Slot> getTargetOnScanNode(RelationId id) {
+ public List<Slot> getTargetOnScanNode(ObjectId id) {
return context.getTargetOnOlapScanNodeMap().getOrDefault(id,
Collections.emptyList());
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/memo/GroupExpression.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/memo/GroupExpression.java
index 370fabaf0e..efc35bc5d4 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/memo/GroupExpression.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/memo/GroupExpression.java
@@ -26,6 +26,8 @@ import
org.apache.doris.nereids.metrics.event.CostStateUpdateEvent;
import org.apache.doris.nereids.properties.PhysicalProperties;
import org.apache.doris.nereids.rules.Rule;
import org.apache.doris.nereids.rules.RuleType;
+import org.apache.doris.nereids.trees.expressions.StatementScopeIdGenerator;
+import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.nereids.trees.plans.Plan;
import org.apache.doris.nereids.util.Utils;
import org.apache.doris.statistics.StatsDeriveResult;
@@ -71,6 +73,8 @@ public class GroupExpression {
// After mergeGroup(), source Group was cleaned up, but it may be in the
Job Stack. So use this to mark and skip it.
private boolean isUnused = false;
+ private ObjectId id = StatementScopeIdGenerator.newObjectId();
+
public GroupExpression(Plan plan) {
this(plan, Lists.newArrayList());
}
@@ -306,7 +310,8 @@ public class GroupExpression {
@Override
public String toString() {
- StringBuilder builder = new StringBuilder();
+ StringBuilder builder = new StringBuilder("id:");
+ builder.append(id.asInt());
if (ownerGroup == null) {
builder.append("OWNER GROUP IS NULL[]");
} else {
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterContext.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterContext.java
index 7658b34908..a50f916761 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterContext.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterContext.java
@@ -23,8 +23,8 @@ import org.apache.doris.common.Pair;
import org.apache.doris.nereids.trees.expressions.ExprId;
import org.apache.doris.nereids.trees.expressions.NamedExpression;
import org.apache.doris.nereids.trees.expressions.Slot;
+import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.nereids.trees.plans.Plan;
-import org.apache.doris.nereids.trees.plans.RelationId;
import org.apache.doris.nereids.trees.plans.physical.AbstractPhysicalJoin;
import org.apache.doris.nereids.trees.plans.physical.PhysicalHashJoin;
import org.apache.doris.nereids.trees.plans.physical.RuntimeFilter;
@@ -58,7 +58,7 @@ public class RuntimeFilterContext {
private final Map<Plan, List<ExprId>> joinToTargetExprId =
Maps.newHashMap();
// olap scan node that contains target of a runtime filter.
- private final Map<RelationId, List<Slot>> targetOnOlapScanNodeMap =
Maps.newHashMap();
+ private final Map<ObjectId, List<Slot>> targetOnOlapScanNodeMap =
Maps.newHashMap();
private final List<org.apache.doris.planner.RuntimeFilter> legacyFilters =
Lists.newArrayList();
@@ -70,7 +70,7 @@ public class RuntimeFilterContext {
// alias -> alias's child, if there's a key that is alias's child, the
key-value will change by this way
// Alias(A) = B, now B -> A in map, and encounter Alias(B) -> C, the kv
will be C -> A.
// you can see disjoint set data structure to learn the processing
detailed.
- private final Map<NamedExpression, Pair<RelationId, Slot>>
aliasTransferMap = Maps.newHashMap();
+ private final Map<NamedExpression, Pair<ObjectId, Slot>> aliasTransferMap
= Maps.newHashMap();
private final Map<Slot, ScanNode> scanNodeOfLegacyRuntimeFilterTarget =
Maps.newHashMap();
@@ -117,7 +117,7 @@ public class RuntimeFilterContext {
}
}
- public void setTargetsOnScanNode(RelationId id, Slot slot) {
+ public void setTargetsOnScanNode(ObjectId id, Slot slot) {
this.targetOnOlapScanNodeMap.computeIfAbsent(id, k ->
Lists.newArrayList()).add(slot);
}
@@ -125,7 +125,7 @@ public class RuntimeFilterContext {
return exprIdToOlapScanNodeSlotRef;
}
- public Map<NamedExpression, Pair<RelationId, Slot>> getAliasTransferMap() {
+ public Map<NamedExpression, Pair<ObjectId, Slot>> getAliasTransferMap() {
return aliasTransferMap;
}
@@ -146,7 +146,7 @@ public class RuntimeFilterContext {
return targetExprIdToFilter;
}
- public Map<RelationId, List<Slot>> getTargetOnOlapScanNodeMap() {
+ public Map<ObjectId, List<Slot>> getTargetOnOlapScanNodeMap() {
return targetOnOlapScanNodeMap;
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterGenerator.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterGenerator.java
index d787f628cd..ec85e65d65 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterGenerator.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterGenerator.java
@@ -28,8 +28,8 @@ import org.apache.doris.nereids.trees.expressions.Not;
import org.apache.doris.nereids.trees.expressions.Slot;
import
org.apache.doris.nereids.trees.expressions.functions.scalar.BitmapContains;
import org.apache.doris.nereids.trees.plans.JoinType;
+import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.nereids.trees.plans.Plan;
-import org.apache.doris.nereids.trees.plans.RelationId;
import org.apache.doris.nereids.trees.plans.physical.PhysicalHashJoin;
import org.apache.doris.nereids.trees.plans.physical.PhysicalNestedLoopJoin;
import org.apache.doris.nereids.trees.plans.physical.PhysicalPlan;
@@ -80,7 +80,7 @@ public class RuntimeFilterGenerator extends PlanPostProcessor
{
public PhysicalPlan visitPhysicalHashJoin(PhysicalHashJoin<? extends Plan,
? extends Plan> join,
CascadesContext context) {
RuntimeFilterContext ctx = context.getRuntimeFilterContext();
- Map<NamedExpression, Pair<RelationId, Slot>> aliasTransferMap =
ctx.getAliasTransferMap();
+ Map<NamedExpression, Pair<ObjectId, Slot>> aliasTransferMap =
ctx.getAliasTransferMap();
join.right().accept(this, context);
join.left().accept(this, context);
if (deniedJoinType.contains(join.getJoinType()) || join.isMarkJoin()) {
@@ -128,7 +128,7 @@ public class RuntimeFilterGenerator extends
PlanPostProcessor {
return join;
}
RuntimeFilterContext ctx = context.getRuntimeFilterContext();
- Map<NamedExpression, Pair<RelationId, Slot>> aliasTransferMap =
ctx.getAliasTransferMap();
+ Map<NamedExpression, Pair<ObjectId, Slot>> aliasTransferMap =
ctx.getAliasTransferMap();
join.right().accept(this, context);
join.left().accept(this, context);
@@ -175,7 +175,7 @@ public class RuntimeFilterGenerator extends
PlanPostProcessor {
@Override
public PhysicalPlan visitPhysicalProject(PhysicalProject<? extends Plan>
project, CascadesContext context) {
project.child().accept(this, context);
- Map<NamedExpression, Pair<RelationId, Slot>> aliasTransferMap
+ Map<NamedExpression, Pair<ObjectId, Slot>> aliasTransferMap
= context.getRuntimeFilterContext().getAliasTransferMap();
// change key when encounter alias.
for (Expression expression : project.getProjects()) {
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/AbstractTreeNode.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/AbstractTreeNode.java
index 2c5ebf6b3d..990c87bb8c 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/AbstractTreeNode.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/AbstractTreeNode.java
@@ -18,6 +18,8 @@
package org.apache.doris.nereids.trees;
import org.apache.doris.nereids.memo.GroupExpression;
+import org.apache.doris.nereids.trees.expressions.StatementScopeIdGenerator;
+import org.apache.doris.nereids.trees.plans.ObjectId;
import com.google.common.collect.ImmutableList;
@@ -32,7 +34,7 @@ import java.util.Optional;
*/
public abstract class AbstractTreeNode<NODE_TYPE extends TreeNode<NODE_TYPE>>
implements TreeNode<NODE_TYPE> {
-
+ protected final ObjectId id = StatementScopeIdGenerator.newObjectId();
protected final List<NODE_TYPE> children;
// TODO: Maybe we should use a GroupPlan to avoid TreeNode hold the
GroupExpression.
// https://github.com/apache/doris/pull/9807#discussion_r884829067
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Alias.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Alias.java
index add793b070..4ca9fca500 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Alias.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Alias.java
@@ -44,7 +44,7 @@ public class Alias extends NamedExpression implements
UnaryExpression {
* @param name alias name
*/
public Alias(Expression child, String name) {
- this(NamedExpressionUtil.newExprId(), child, name);
+ this(StatementScopeIdGenerator.newExprId(), child, name);
}
public Alias(ExprId exprId, Expression child, String name) {
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/ExprId.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/ExprId.java
index 71b5c16ca7..0ea16ddf83 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/ExprId.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/ExprId.java
@@ -44,7 +44,7 @@ public class ExprId extends Id<ExprId> {
}
/**
- * Should be only called by {@link
org.apache.doris.nereids.trees.expressions.NamedExpressionUtil}.
+ * Should be only called by {@link StatementScopeIdGenerator}.
*/
public static IdGenerator<ExprId> createGenerator() {
return new IdGenerator<ExprId>() {
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/SlotReference.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/SlotReference.java
index b5122230e2..25a9cb79c2 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/SlotReference.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/SlotReference.java
@@ -43,15 +43,15 @@ public class SlotReference extends Slot {
private final Column column;
public SlotReference(String name, DataType dataType) {
- this(NamedExpressionUtil.newExprId(), name, dataType, true,
ImmutableList.of(), null);
+ this(StatementScopeIdGenerator.newExprId(), name, dataType, true,
ImmutableList.of(), null);
}
public SlotReference(String name, DataType dataType, boolean nullable) {
- this(NamedExpressionUtil.newExprId(), name, dataType, nullable,
ImmutableList.of(), null);
+ this(StatementScopeIdGenerator.newExprId(), name, dataType, nullable,
ImmutableList.of(), null);
}
public SlotReference(String name, DataType dataType, boolean nullable,
List<String> qualifier) {
- this(NamedExpressionUtil.newExprId(), name, dataType, nullable,
qualifier, null);
+ this(StatementScopeIdGenerator.newExprId(), name, dataType, nullable,
qualifier, null);
}
public SlotReference(ExprId exprId, String name, DataType dataType,
boolean nullable, List<String> qualifier) {
@@ -84,7 +84,7 @@ public class SlotReference extends Slot {
public static SlotReference fromColumn(Column column, List<String>
qualifier) {
DataType dataType = DataType.fromCatalogType(column.getType());
- return new SlotReference(NamedExpressionUtil.newExprId(),
column.getName(), dataType,
+ return new SlotReference(StatementScopeIdGenerator.newExprId(),
column.getName(), dataType,
column.isAllowNull(), qualifier, column);
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/NamedExpressionUtil.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/StatementScopeIdGenerator.java
similarity index 80%
rename from
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/NamedExpressionUtil.java
rename to
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/StatementScopeIdGenerator.java
index 27cd0d3d9d..c336df6303 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/NamedExpressionUtil.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/StatementScopeIdGenerator.java
@@ -18,6 +18,7 @@
package org.apache.doris.nereids.trees.expressions;
import org.apache.doris.nereids.StatementContext;
+import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.qe.ConnectContext;
import com.google.common.annotations.VisibleForTesting;
@@ -25,7 +26,7 @@ import com.google.common.annotations.VisibleForTesting;
/**
* The util of named expression.
*/
-public class NamedExpressionUtil {
+public class StatementScopeIdGenerator {
// for test only
private static StatementContext statementContext = new StatementContext();
@@ -38,6 +39,14 @@ public class NamedExpressionUtil {
return ConnectContext.get().getStatementContext().getNextExprId();
}
+ public static ObjectId newObjectId() {
+ // this branch is for test only
+ if (ConnectContext.get() == null ||
ConnectContext.get().getStatementContext() == null) {
+ return statementContext.getNextObjectId();
+ }
+ return ConnectContext.get().getStatementContext().getNextObjectId();
+ }
+
/**
* Reset Id Generator
*/
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/VirtualSlotReference.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/VirtualSlotReference.java
index eaae4553d2..76906d2139 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/VirtualSlotReference.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/VirtualSlotReference.java
@@ -46,7 +46,7 @@ public class VirtualSlotReference extends SlotReference
implements SlotNotFromCh
public VirtualSlotReference(String name, DataType dataType,
Optional<GroupingScalarFunction> originExpression,
Function<GroupingSetShapes, List<Long>> computeLongValueMethod) {
- this(NamedExpressionUtil.newExprId(), name, dataType, false,
ImmutableList.of(),
+ this(StatementScopeIdGenerator.newExprId(), name, dataType, false,
ImmutableList.of(),
originExpression, computeLongValueMethod);
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/RelationId.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/ObjectId.java
similarity index 76%
rename from
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/RelationId.java
rename to
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/ObjectId.java
index ac2ab3233b..a540afd0ce 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/RelationId.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/ObjectId.java
@@ -19,15 +19,16 @@ 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 java.util.Objects;
/**
* relation id
*/
-public class RelationId extends Id<RelationId> {
+public class ObjectId extends Id<ObjectId> {
- public RelationId(int id) {
+ public ObjectId(int id) {
super(id);
}
@@ -39,18 +40,18 @@ public class RelationId extends Id<RelationId> {
if (o == null || getClass() != o.getClass()) {
return false;
}
- RelationId relationId = (RelationId) o;
+ ObjectId relationId = (ObjectId) o;
return id == relationId.id;
}
/**
- * Should be only called by {@link
org.apache.doris.nereids.trees.expressions.NamedExpressionUtil}.
+ * Should be only called by {@link StatementScopeIdGenerator}.
*/
- public static IdGenerator<RelationId> createGenerator() {
- return new IdGenerator<RelationId>() {
+ public static IdGenerator<ObjectId> createGenerator() {
+ return new IdGenerator<ObjectId>() {
@Override
- public RelationId getNextId() {
- return new RelationId(nextId++);
+ public ObjectId getNextId() {
+ return new ObjectId(nextId++);
}
};
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalAggregate.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalAggregate.java
index 6f3c0778de..ad62daca45 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalAggregate.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalAggregate.java
@@ -140,7 +140,7 @@ public class LogicalAggregate<CHILD_TYPE extends Plan>
@Override
public String toString() {
- return Utils.toSqlString("LogicalAggregate",
+ return Utils.toSqlString("LogicalAggregate[" + id.asInt() + "]",
"groupByExpr", groupByExpressions,
"outputExpr", outputExpressions,
"hasRepeat", sourceRepeat.isPresent()
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalEsScan.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalEsScan.java
index 27b378efa7..c8f41bdaa1 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalEsScan.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalEsScan.java
@@ -20,8 +20,8 @@ package org.apache.doris.nereids.trees.plans.logical;
import org.apache.doris.catalog.external.ExternalTable;
import org.apache.doris.nereids.memo.GroupExpression;
import org.apache.doris.nereids.properties.LogicalProperties;
+import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.nereids.trees.plans.PlanType;
-import org.apache.doris.nereids.trees.plans.RelationId;
import org.apache.doris.nereids.trees.plans.visitor.PlanVisitor;
import org.apache.doris.nereids.util.Utils;
@@ -38,14 +38,14 @@ public class LogicalEsScan extends LogicalRelation {
/**
* Constructor for LogicalEsScan.
*/
- public LogicalEsScan(RelationId id, ExternalTable table, List<String>
qualifier,
+ public LogicalEsScan(ObjectId id, ExternalTable table, List<String>
qualifier,
Optional<GroupExpression> groupExpression,
Optional<LogicalProperties> logicalProperties) {
super(id, PlanType.LOGICAL_ES_SCAN, table, qualifier,
groupExpression, logicalProperties);
}
- public LogicalEsScan(RelationId id, ExternalTable table, List<String>
qualifier) {
+ public LogicalEsScan(ObjectId id, ExternalTable table, List<String>
qualifier) {
this(id, table, qualifier, Optional.empty(), Optional.empty());
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalFileScan.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalFileScan.java
index a7bf18eb88..c8eb7b1da0 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalFileScan.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalFileScan.java
@@ -20,8 +20,8 @@ package org.apache.doris.nereids.trees.plans.logical;
import org.apache.doris.catalog.external.ExternalTable;
import org.apache.doris.nereids.memo.GroupExpression;
import org.apache.doris.nereids.properties.LogicalProperties;
+import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.nereids.trees.plans.PlanType;
-import org.apache.doris.nereids.trees.plans.RelationId;
import org.apache.doris.nereids.trees.plans.visitor.PlanVisitor;
import org.apache.doris.nereids.util.Utils;
@@ -38,14 +38,14 @@ public class LogicalFileScan extends LogicalRelation {
/**
* Constructor for LogicalFileScan.
*/
- public LogicalFileScan(RelationId id, ExternalTable table, List<String>
qualifier,
+ public LogicalFileScan(ObjectId id, ExternalTable table, List<String>
qualifier,
Optional<GroupExpression> groupExpression,
Optional<LogicalProperties> logicalProperties) {
super(id, PlanType.LOGICAL_FILE_SCAN, table, qualifier,
groupExpression, logicalProperties);
}
- public LogicalFileScan(RelationId id, ExternalTable table, List<String>
qualifier) {
+ public LogicalFileScan(ObjectId id, ExternalTable table, List<String>
qualifier) {
this(id, table, qualifier, Optional.empty(), Optional.empty());
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalFilter.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalFilter.java
index cd533f63a9..28bcccfe14 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalFilter.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalFilter.java
@@ -84,7 +84,9 @@ public class LogicalFilter<CHILD_TYPE extends Plan> extends
LogicalUnary<CHILD_T
@Override
public String toString() {
- return Utils.toSqlString("LogicalFilter", "predicates",
getPredicate());
+ return Utils.toSqlString("LogicalFilter[" + id.asInt() + "]",
+ "predicates", getPredicate()
+ );
}
@Override
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalJdbcScan.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalJdbcScan.java
index 386baea1f3..cf00a806bb 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalJdbcScan.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalJdbcScan.java
@@ -20,8 +20,8 @@ package org.apache.doris.nereids.trees.plans.logical;
import org.apache.doris.catalog.external.ExternalTable;
import org.apache.doris.nereids.memo.GroupExpression;
import org.apache.doris.nereids.properties.LogicalProperties;
+import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.nereids.trees.plans.PlanType;
-import org.apache.doris.nereids.trees.plans.RelationId;
import org.apache.doris.nereids.trees.plans.visitor.PlanVisitor;
import org.apache.doris.nereids.util.Utils;
@@ -38,14 +38,14 @@ public class LogicalJdbcScan extends LogicalRelation {
/**
* Constructor for LogicalJdbcScan.
*/
- public LogicalJdbcScan(RelationId id, ExternalTable table, List<String>
qualifier,
+ public LogicalJdbcScan(ObjectId id, ExternalTable table, List<String>
qualifier,
Optional<GroupExpression> groupExpression,
Optional<LogicalProperties> logicalProperties) {
super(id, PlanType.LOGICAL_JDBC_SCAN, table, qualifier,
groupExpression, logicalProperties);
}
- public LogicalJdbcScan(RelationId id, ExternalTable table, List<String>
qualifier) {
+ public LogicalJdbcScan(ObjectId id, ExternalTable table, List<String>
qualifier) {
this(id, table, qualifier, Optional.empty(), Optional.empty());
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalJoin.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalJoin.java
index 6cb7dd60f7..7794e0bac0 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalJoin.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalJoin.java
@@ -180,7 +180,7 @@ public class LogicalJoin<LEFT_CHILD_TYPE extends Plan,
RIGHT_CHILD_TYPE extends
args.add("hint");
args.add(hint);
}
- return Utils.toSqlString("LogicalJoin", args.toArray());
+ return Utils.toSqlString("LogicalJoin[" + id.asInt() + "]",
args.toArray());
}
@Override
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalOlapScan.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalOlapScan.java
index ea83b5eb5e..04c258bc6a 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalOlapScan.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalOlapScan.java
@@ -28,9 +28,9 @@ import org.apache.doris.nereids.memo.GroupExpression;
import org.apache.doris.nereids.properties.LogicalProperties;
import org.apache.doris.nereids.trees.expressions.Slot;
import org.apache.doris.nereids.trees.expressions.SlotReference;
+import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.nereids.trees.plans.PlanType;
import org.apache.doris.nereids.trees.plans.PreAggStatus;
-import org.apache.doris.nereids.trees.plans.RelationId;
import org.apache.doris.nereids.trees.plans.algebra.CatalogRelation;
import org.apache.doris.nereids.trees.plans.algebra.OlapScan;
import org.apache.doris.nereids.trees.plans.visitor.PlanVisitor;
@@ -104,32 +104,32 @@ public class LogicalOlapScan extends LogicalRelation
implements CatalogRelation,
///////////////////////////////////////////////////////////////////////////
private final List<String> hints;
- public LogicalOlapScan(RelationId id, OlapTable table) {
+ public LogicalOlapScan(ObjectId id, OlapTable table) {
this(id, table, ImmutableList.of());
}
- public LogicalOlapScan(RelationId id, OlapTable table, List<String>
qualifier) {
+ public LogicalOlapScan(ObjectId id, OlapTable table, List<String>
qualifier) {
this(id, table, qualifier, Optional.empty(), Optional.empty(),
table.getPartitionIds(), false,
ImmutableList.of(), false,
-1, false, PreAggStatus.on(), ImmutableList.of(),
ImmutableList.of());
}
- public LogicalOlapScan(RelationId id, OlapTable table, List<String>
qualifier, List<String> hints) {
+ public LogicalOlapScan(ObjectId id, OlapTable table, List<String>
qualifier, List<String> hints) {
this(id, table, qualifier, Optional.empty(), Optional.empty(),
table.getPartitionIds(), false,
ImmutableList.of(), false,
-1, false, PreAggStatus.on(), ImmutableList.of(), hints);
}
- public LogicalOlapScan(RelationId id, OlapTable table, List<String>
qualifier, List<Long> specifiedPartitions,
+ public LogicalOlapScan(ObjectId id, OlapTable table, List<String>
qualifier, List<Long> specifiedPartitions,
List<String> hints) {
this(id, table, qualifier, Optional.empty(), Optional.empty(),
specifiedPartitions, false, ImmutableList.of(), false,
-1, false, PreAggStatus.on(), specifiedPartitions, hints);
}
- public LogicalOlapScan(RelationId id, Table table, List<String> qualifier)
{
+ public LogicalOlapScan(ObjectId id, Table table, List<String> qualifier) {
this(id, table, qualifier, Optional.empty(), Optional.empty(),
((OlapTable) table).getPartitionIds(), false,
ImmutableList.of(), false,
-1, false, PreAggStatus.on(), ImmutableList.of(),
ImmutableList.of());
@@ -138,7 +138,7 @@ public class LogicalOlapScan extends LogicalRelation
implements CatalogRelation,
/**
* Constructor for LogicalOlapScan.
*/
- public LogicalOlapScan(RelationId id, Table table, List<String> qualifier,
+ public LogicalOlapScan(ObjectId id, Table table, List<String> qualifier,
Optional<GroupExpression> groupExpression,
Optional<LogicalProperties> logicalProperties,
List<Long> selectedPartitionIds, boolean partitionPruned,
List<Long> selectedTabletIds, boolean tabletPruned,
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalProject.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalProject.java
index 101031220b..ab18b72c1c 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalProject.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalProject.java
@@ -116,7 +116,7 @@ public class LogicalProject<CHILD_TYPE extends Plan>
extends LogicalUnary<CHILD_
@Override
public String toString() {
- return Utils.toSqlString("LogicalProject",
+ return Utils.toSqlString("LogicalProject[" + id.asInt() + "]",
"distinct", isDistinct,
"projects", projects,
"excepts", excepts,
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalRelation.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalRelation.java
index 2b68913e4f..3e7028bc9d 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalRelation.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalRelation.java
@@ -24,8 +24,8 @@ import org.apache.doris.nereids.properties.LogicalProperties;
import org.apache.doris.nereids.trees.expressions.Expression;
import org.apache.doris.nereids.trees.expressions.Slot;
import org.apache.doris.nereids.trees.expressions.SlotReference;
+import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.nereids.trees.plans.PlanType;
-import org.apache.doris.nereids.trees.plans.RelationId;
import org.apache.doris.nereids.trees.plans.algebra.Scan;
import org.apache.doris.nereids.trees.plans.visitor.PlanVisitor;
import org.apache.doris.nereids.util.Utils;
@@ -41,15 +41,15 @@ import java.util.Optional;
*/
public abstract class LogicalRelation extends LogicalLeaf implements Scan {
- protected final RelationId id;
+ protected final ObjectId id;
protected final TableIf table;
protected final ImmutableList<String> qualifier;
- public LogicalRelation(RelationId id, PlanType type, TableIf table,
List<String> qualifier) {
+ public LogicalRelation(ObjectId id, PlanType type, TableIf table,
List<String> qualifier) {
this(id, type, table, qualifier, Optional.empty(), Optional.empty());
}
- public LogicalRelation(RelationId id, PlanType type,
Optional<GroupExpression> groupExpression,
+ public LogicalRelation(ObjectId id, PlanType type,
Optional<GroupExpression> groupExpression,
Optional<LogicalProperties> logicalProperties) {
this(id, type, new OlapTable(), ImmutableList.of(), groupExpression,
logicalProperties);
}
@@ -60,7 +60,7 @@ public abstract class LogicalRelation extends LogicalLeaf
implements Scan {
* @param table Doris table
* @param qualifier qualified relation name
*/
- public LogicalRelation(RelationId id, PlanType type, TableIf table,
List<String> qualifier,
+ public LogicalRelation(ObjectId id, PlanType type, TableIf table,
List<String> qualifier,
Optional<GroupExpression> groupExpression,
Optional<LogicalProperties> logicalProperties) {
super(type, groupExpression, logicalProperties);
this.id = id;
@@ -128,7 +128,7 @@ public abstract class LogicalRelation extends LogicalLeaf
implements Scan {
return Utils.qualifiedName(qualifier, table.getName());
}
- public RelationId getId() {
+ public ObjectId getId() {
return id;
}
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalSchemaScan.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalSchemaScan.java
index 49dcb47175..9a7e7f1e99 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalSchemaScan.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalSchemaScan.java
@@ -21,9 +21,9 @@ import org.apache.doris.catalog.SchemaTable;
import org.apache.doris.catalog.TableIf;
import org.apache.doris.nereids.memo.GroupExpression;
import org.apache.doris.nereids.properties.LogicalProperties;
+import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.nereids.trees.plans.Plan;
import org.apache.doris.nereids.trees.plans.PlanType;
-import org.apache.doris.nereids.trees.plans.RelationId;
import org.apache.doris.nereids.trees.plans.algebra.Scan;
import org.apache.doris.nereids.trees.plans.visitor.PlanVisitor;
import org.apache.doris.nereids.util.Utils;
@@ -36,11 +36,11 @@ import java.util.Optional;
*/
public class LogicalSchemaScan extends LogicalRelation implements Scan {
- public LogicalSchemaScan(RelationId id, TableIf table, List<String>
qualifier) {
+ public LogicalSchemaScan(ObjectId id, TableIf table, List<String>
qualifier) {
super(id, PlanType.LOGICAL_SCHEMA_SCAN, table, qualifier);
}
- public LogicalSchemaScan(RelationId id, TableIf table, List<String>
qualifier,
+ public LogicalSchemaScan(ObjectId id, TableIf table, List<String>
qualifier,
Optional<GroupExpression> groupExpression,
Optional<LogicalProperties> logicalProperties) {
super(id, PlanType.LOGICAL_SCHEMA_SCAN, table, qualifier,
groupExpression, logicalProperties);
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalSort.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalSort.java
index a78e985925..50986e30fb 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalSort.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalSort.java
@@ -70,7 +70,7 @@ public class LogicalSort<CHILD_TYPE extends Plan> extends
LogicalUnary<CHILD_TYP
@Override
public String toString() {
- return Utils.toSqlString("LogicalSort",
+ return Utils.toSqlString("LogicalSort[" + id.asInt() + "]",
"orderKeys", orderKeys);
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalTVFRelation.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalTVFRelation.java
index 905df45dc5..d83d3a6123 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalTVFRelation.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalTVFRelation.java
@@ -20,8 +20,8 @@ package org.apache.doris.nereids.trees.plans.logical;
import org.apache.doris.nereids.memo.GroupExpression;
import org.apache.doris.nereids.properties.LogicalProperties;
import
org.apache.doris.nereids.trees.expressions.functions.table.TableValuedFunction;
+import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.nereids.trees.plans.PlanType;
-import org.apache.doris.nereids.trees.plans.RelationId;
import org.apache.doris.nereids.trees.plans.algebra.TVFRelation;
import org.apache.doris.nereids.trees.plans.visitor.PlanVisitor;
import org.apache.doris.nereids.util.Utils;
@@ -36,14 +36,14 @@ public class LogicalTVFRelation extends LogicalRelation
implements TVFRelation {
private final TableValuedFunction function;
- public LogicalTVFRelation(RelationId id, TableValuedFunction function) {
+ public LogicalTVFRelation(ObjectId id, TableValuedFunction function) {
super(id, PlanType.LOGICAL_TVF_RELATION,
Objects.requireNonNull(function, "table valued function can
not be null").getTable(),
ImmutableList.of());
this.function = function;
}
- public LogicalTVFRelation(RelationId id, TableValuedFunction function,
Optional<GroupExpression> groupExpression,
+ public LogicalTVFRelation(ObjectId id, TableValuedFunction function,
Optional<GroupExpression> groupExpression,
Optional<LogicalProperties> logicalProperties) {
super(id, PlanType.LOGICAL_TVF_RELATION,
Objects.requireNonNull(function, "table valued function can
not be null").getTable(),
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/RelationUtil.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/RelationUtil.java
index 223aa4f24b..5f6d84f635 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/RelationUtil.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/RelationUtil.java
@@ -18,7 +18,7 @@
package org.apache.doris.nereids.trees.plans.logical;
import org.apache.doris.nereids.StatementContext;
-import org.apache.doris.nereids.trees.plans.RelationId;
+import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.qe.ConnectContext;
import com.google.common.annotations.VisibleForTesting;
@@ -31,12 +31,12 @@ public class RelationUtil {
// for test only
private static StatementContext statementContext = new StatementContext();
- public static RelationId newRelationId() {
+ public static ObjectId newRelationId() {
// this branch is for test only
if (ConnectContext.get() == null ||
ConnectContext.get().getStatementContext() == null) {
- return statementContext.getNextRelationId();
+ return statementContext.getNextObjectId();
}
- return ConnectContext.get().getStatementContext().getNextRelationId();
+ return ConnectContext.get().getStatementContext().getNextObjectId();
}
/**
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalDistribute.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalDistribute.java
index 3163036665..0e75a8343c 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalDistribute.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalDistribute.java
@@ -61,7 +61,7 @@ public class PhysicalDistribute<CHILD_TYPE extends Plan>
extends PhysicalUnary<C
@Override
public String toString() {
- return Utils.toSqlString("PhysicalDistribute",
+ return Utils.toSqlString("PhysicalDistribute[" + id.asInt() + "]",
"distributionSpec", distributionSpec,
"stats", statsDeriveResult
);
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalEsScan.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalEsScan.java
index 3e801a3035..923daa1eb4 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalEsScan.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalEsScan.java
@@ -22,8 +22,8 @@ import org.apache.doris.nereids.memo.GroupExpression;
import org.apache.doris.nereids.properties.DistributionSpec;
import org.apache.doris.nereids.properties.LogicalProperties;
import org.apache.doris.nereids.properties.PhysicalProperties;
+import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.nereids.trees.plans.PlanType;
-import org.apache.doris.nereids.trees.plans.RelationId;
import org.apache.doris.nereids.trees.plans.visitor.PlanVisitor;
import org.apache.doris.nereids.util.Utils;
import org.apache.doris.statistics.StatsDeriveResult;
@@ -43,7 +43,7 @@ public class PhysicalEsScan extends PhysicalRelation {
/**
* Constructor for PhysicalEsScan.
*/
- public PhysicalEsScan(RelationId id, ExternalTable table, List<String>
qualifier,
+ public PhysicalEsScan(ObjectId id, ExternalTable table, List<String>
qualifier,
DistributionSpec distributionSpec,
Optional<GroupExpression> groupExpression,
LogicalProperties logicalProperties) {
super(id, PlanType.PHYSICAL_ES_SCAN, qualifier, groupExpression,
logicalProperties);
@@ -54,7 +54,7 @@ public class PhysicalEsScan extends PhysicalRelation {
/**
* Constructor for PhysicalEsScan.
*/
- public PhysicalEsScan(RelationId id, ExternalTable table, List<String>
qualifier,
+ public PhysicalEsScan(ObjectId id, ExternalTable table, List<String>
qualifier,
DistributionSpec distributionSpec,
Optional<GroupExpression> groupExpression,
LogicalProperties logicalProperties,
PhysicalProperties physicalProperties,
StatsDeriveResult statsDeriveResult) {
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalFileScan.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalFileScan.java
index 49091d229c..f49d2504e5 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalFileScan.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalFileScan.java
@@ -22,8 +22,8 @@ import org.apache.doris.nereids.memo.GroupExpression;
import org.apache.doris.nereids.properties.DistributionSpec;
import org.apache.doris.nereids.properties.LogicalProperties;
import org.apache.doris.nereids.properties.PhysicalProperties;
+import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.nereids.trees.plans.PlanType;
-import org.apache.doris.nereids.trees.plans.RelationId;
import org.apache.doris.nereids.trees.plans.visitor.PlanVisitor;
import org.apache.doris.nereids.util.Utils;
import org.apache.doris.statistics.StatsDeriveResult;
@@ -43,7 +43,7 @@ public class PhysicalFileScan extends PhysicalRelation {
/**
* Constructor for PhysicalFileScan.
*/
- public PhysicalFileScan(RelationId id, ExternalTable table, List<String>
qualifier,
+ public PhysicalFileScan(ObjectId id, ExternalTable table, List<String>
qualifier,
DistributionSpec distributionSpec,
Optional<GroupExpression> groupExpression,
LogicalProperties logicalProperties) {
super(id, PlanType.PHYSICAL_FILE_SCAN, qualifier, groupExpression,
logicalProperties);
@@ -54,7 +54,7 @@ public class PhysicalFileScan extends PhysicalRelation {
/**
* Constructor for PhysicalFileScan.
*/
- public PhysicalFileScan(RelationId id, ExternalTable table, List<String>
qualifier,
+ public PhysicalFileScan(ObjectId id, ExternalTable table, List<String>
qualifier,
DistributionSpec distributionSpec,
Optional<GroupExpression> groupExpression,
LogicalProperties logicalProperties,
PhysicalProperties physicalProperties,
StatsDeriveResult statsDeriveResult) {
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalFilter.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalFilter.java
index 443c9f2c8c..be8aa2f004 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalFilter.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalFilter.java
@@ -73,7 +73,7 @@ public class PhysicalFilter<CHILD_TYPE extends Plan> extends
PhysicalUnary<CHILD
@Override
public String toString() {
- return Utils.toSqlString("PhysicalFilter",
+ return Utils.toSqlString("PhysicalFilter[" + id.asInt() + "]",
"predicates", getPredicate(),
"stats", statsDeriveResult
);
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalHashAggregate.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalHashAggregate.java
index 4d4f1d9a24..ffc5eb8279 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalHashAggregate.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalHashAggregate.java
@@ -182,7 +182,7 @@ public class PhysicalHashAggregate<CHILD_TYPE extends Plan>
extends PhysicalUnar
@Override
public String toString() {
- return Utils.toSqlString("PhysicalHashAggregate",
+ return Utils.toSqlString("PhysicalHashAggregate[" + id.asInt() + "]",
"aggPhase", aggregateParam.aggPhase,
"aggMode", aggregateParam.aggMode,
"maybeUseStreaming", maybeUsingStream,
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalHashJoin.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalHashJoin.java
index 59a416a7bd..0b54b31035 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalHashJoin.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalHashJoin.java
@@ -115,7 +115,7 @@ public class PhysicalHashJoin<
args.add("hint");
args.add(hint);
}
- return Utils.toSqlString("PhysicalHashJoin", args.toArray());
+ return Utils.toSqlString("PhysicalHashJoin[" + id.asInt() + "]",
args.toArray());
}
@Override
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalJdbcScan.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalJdbcScan.java
index 237f33a18e..09cd6fbbb6 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalJdbcScan.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalJdbcScan.java
@@ -22,8 +22,8 @@ import org.apache.doris.nereids.memo.GroupExpression;
import org.apache.doris.nereids.properties.DistributionSpec;
import org.apache.doris.nereids.properties.LogicalProperties;
import org.apache.doris.nereids.properties.PhysicalProperties;
+import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.nereids.trees.plans.PlanType;
-import org.apache.doris.nereids.trees.plans.RelationId;
import org.apache.doris.nereids.trees.plans.visitor.PlanVisitor;
import org.apache.doris.nereids.util.Utils;
import org.apache.doris.statistics.StatsDeriveResult;
@@ -43,7 +43,7 @@ public class PhysicalJdbcScan extends PhysicalRelation {
/**
* Constructor for PhysicalJdbcScan.
*/
- public PhysicalJdbcScan(RelationId id, ExternalTable table, List<String>
qualifier,
+ public PhysicalJdbcScan(ObjectId id, ExternalTable table, List<String>
qualifier,
DistributionSpec distributionSpec,
Optional<GroupExpression> groupExpression,
LogicalProperties logicalProperties) {
super(id, PlanType.PHYSICAL_JDBC_SCAN, qualifier, groupExpression,
logicalProperties);
@@ -54,7 +54,7 @@ public class PhysicalJdbcScan extends PhysicalRelation {
/**
* Constructor for PhysicalJdbcScan.
*/
- public PhysicalJdbcScan(RelationId id, ExternalTable table, List<String>
qualifier,
+ public PhysicalJdbcScan(ObjectId id, ExternalTable table, List<String>
qualifier,
DistributionSpec distributionSpec,
Optional<GroupExpression> groupExpression,
LogicalProperties logicalProperties,
PhysicalProperties physicalProperties,
StatsDeriveResult statsDeriveResult) {
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 4095bff8a5..64f70f7516 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
@@ -22,9 +22,9 @@ import org.apache.doris.nereids.memo.GroupExpression;
import org.apache.doris.nereids.properties.DistributionSpec;
import org.apache.doris.nereids.properties.LogicalProperties;
import org.apache.doris.nereids.properties.PhysicalProperties;
+import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.nereids.trees.plans.PlanType;
import org.apache.doris.nereids.trees.plans.PreAggStatus;
-import org.apache.doris.nereids.trees.plans.RelationId;
import org.apache.doris.nereids.trees.plans.algebra.OlapScan;
import org.apache.doris.nereids.trees.plans.visitor.PlanVisitor;
import org.apache.doris.nereids.util.Utils;
@@ -51,7 +51,7 @@ public class PhysicalOlapScan extends PhysicalRelation
implements OlapScan {
/**
* Constructor for PhysicalOlapScan.
*/
- public PhysicalOlapScan(RelationId id, OlapTable olapTable, List<String>
qualifier, long selectedIndexId,
+ public PhysicalOlapScan(ObjectId id, OlapTable olapTable, List<String>
qualifier, long selectedIndexId,
List<Long> selectedTabletIds, List<Long> selectedPartitionIds,
DistributionSpec distributionSpec,
PreAggStatus preAggStatus, Optional<GroupExpression>
groupExpression, LogicalProperties logicalProperties) {
super(id, PlanType.PHYSICAL_OLAP_SCAN, qualifier, groupExpression,
logicalProperties);
@@ -66,7 +66,7 @@ public class PhysicalOlapScan extends PhysicalRelation
implements OlapScan {
/**
* Constructor for PhysicalOlapScan.
*/
- public PhysicalOlapScan(RelationId id, OlapTable olapTable, List<String>
qualifier, long selectedIndexId,
+ public PhysicalOlapScan(ObjectId id, OlapTable olapTable, List<String>
qualifier, long selectedIndexId,
List<Long> selectedTabletIds, List<Long> selectedPartitionIds,
DistributionSpec distributionSpec,
PreAggStatus preAggStatus, Optional<GroupExpression>
groupExpression, LogicalProperties logicalProperties,
PhysicalProperties physicalProperties, StatsDeriveResult
statsDeriveResult) {
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalProject.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalProject.java
index 7aaaf0a508..c5ce1249f1 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalProject.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalProject.java
@@ -67,7 +67,7 @@ public class PhysicalProject<CHILD_TYPE extends Plan> extends
PhysicalUnary<CHIL
@Override
public String toString() {
- return Utils.toSqlString("PhysicalProject",
+ return Utils.toSqlString("PhysicalProject[" + id.asInt() + "]",
"projects", projects,
"stats", statsDeriveResult
);
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalRelation.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalRelation.java
index a73b20625c..1d3b8bf608 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalRelation.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalRelation.java
@@ -21,8 +21,8 @@ import org.apache.doris.nereids.memo.GroupExpression;
import org.apache.doris.nereids.properties.LogicalProperties;
import org.apache.doris.nereids.properties.PhysicalProperties;
import org.apache.doris.nereids.trees.expressions.Expression;
+import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.nereids.trees.plans.PlanType;
-import org.apache.doris.nereids.trees.plans.RelationId;
import org.apache.doris.nereids.trees.plans.algebra.Scan;
import org.apache.doris.nereids.trees.plans.visitor.PlanVisitor;
import org.apache.doris.statistics.StatsDeriveResult;
@@ -38,13 +38,13 @@ import java.util.Optional;
*/
public abstract class PhysicalRelation extends PhysicalLeaf implements Scan {
- protected final RelationId id;
+ protected final ObjectId id;
protected final ImmutableList<String> qualifier;
/**
* Constructor for PhysicalRelation.
*/
- public PhysicalRelation(RelationId id, PlanType type, List<String>
qualifier,
+ public PhysicalRelation(ObjectId id, PlanType type, List<String> qualifier,
Optional<GroupExpression> groupExpression, LogicalProperties
logicalProperties) {
super(type, groupExpression, logicalProperties);
this.id = id;
@@ -54,7 +54,7 @@ public abstract class PhysicalRelation extends PhysicalLeaf
implements Scan {
/**
* Constructor for PhysicalRelation.
*/
- public PhysicalRelation(RelationId id, PlanType type, List<String>
qualifier,
+ public PhysicalRelation(ObjectId id, PlanType type, List<String> qualifier,
Optional<GroupExpression> groupExpression, LogicalProperties
logicalProperties,
PhysicalProperties physicalProperties, StatsDeriveResult
statsDeriveResult) {
super(type, groupExpression, logicalProperties, physicalProperties,
statsDeriveResult);
@@ -93,7 +93,7 @@ public abstract class PhysicalRelation extends PhysicalLeaf
implements Scan {
return ImmutableList.of();
}
- public RelationId getId() {
+ public ObjectId getId() {
return id;
}
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalSchemaScan.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalSchemaScan.java
index 7d751d4fa4..fe9b29bd86 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalSchemaScan.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalSchemaScan.java
@@ -21,9 +21,9 @@ import org.apache.doris.catalog.Table;
import org.apache.doris.nereids.memo.GroupExpression;
import org.apache.doris.nereids.properties.LogicalProperties;
import org.apache.doris.nereids.properties.PhysicalProperties;
+import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.nereids.trees.plans.Plan;
import org.apache.doris.nereids.trees.plans.PlanType;
-import org.apache.doris.nereids.trees.plans.RelationId;
import org.apache.doris.nereids.trees.plans.algebra.Scan;
import org.apache.doris.nereids.trees.plans.visitor.PlanVisitor;
import org.apache.doris.nereids.util.Utils;
@@ -39,13 +39,13 @@ public class PhysicalSchemaScan extends PhysicalRelation
implements Scan {
private final Table table;
- public PhysicalSchemaScan(RelationId id, Table table, List<String>
qualifier,
+ public PhysicalSchemaScan(ObjectId id, Table table, List<String> qualifier,
Optional<GroupExpression> groupExpression, LogicalProperties
logicalProperties) {
super(id, PlanType.PHYSICAL_SCHEMA_SCAN, qualifier, groupExpression,
logicalProperties);
this.table = table;
}
- public PhysicalSchemaScan(RelationId id, Table table, List<String>
qualifier,
+ public PhysicalSchemaScan(ObjectId id, Table table, List<String> qualifier,
Optional<GroupExpression> groupExpression, LogicalProperties
logicalProperties,
PhysicalProperties physicalProperties, StatsDeriveResult
statsDeriveResult) {
super(id, PlanType.PHYSICAL_SCHEMA_SCAN, qualifier, groupExpression,
logicalProperties, physicalProperties,
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalTVFRelation.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalTVFRelation.java
index 5e5a832786..5a903011af 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalTVFRelation.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalTVFRelation.java
@@ -22,8 +22,8 @@ import org.apache.doris.nereids.memo.GroupExpression;
import org.apache.doris.nereids.properties.LogicalProperties;
import org.apache.doris.nereids.properties.PhysicalProperties;
import
org.apache.doris.nereids.trees.expressions.functions.table.TableValuedFunction;
+import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.nereids.trees.plans.PlanType;
-import org.apache.doris.nereids.trees.plans.RelationId;
import org.apache.doris.nereids.trees.plans.algebra.TVFRelation;
import org.apache.doris.nereids.trees.plans.visitor.PlanVisitor;
import org.apache.doris.nereids.util.Utils;
@@ -39,13 +39,13 @@ public class PhysicalTVFRelation extends PhysicalRelation
implements TVFRelation
private final TableValuedFunction function;
- public PhysicalTVFRelation(RelationId id, TableValuedFunction function,
LogicalProperties logicalProperties) {
+ public PhysicalTVFRelation(ObjectId id, TableValuedFunction function,
LogicalProperties logicalProperties) {
super(id, PlanType.PHYSICAL_TVF_RELATION,
ImmutableList.of(), Optional.empty(), logicalProperties);
this.function = Objects.requireNonNull(function, "function can not be
null");
}
- public PhysicalTVFRelation(RelationId id, TableValuedFunction function,
Optional<GroupExpression> groupExpression,
+ public PhysicalTVFRelation(ObjectId id, TableValuedFunction function,
Optional<GroupExpression> groupExpression,
LogicalProperties logicalProperties, PhysicalProperties
physicalProperties,
StatsDeriveResult statsDeriveResult) {
super(id, PlanType.PHYSICAL_TVF_RELATION, ImmutableList.of(),
groupExpression, logicalProperties,
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalWindow.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalWindow.java
index 276f47bbb2..99e0f0e0af 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalWindow.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalWindow.java
@@ -95,7 +95,7 @@ public class PhysicalWindow<CHILD_TYPE extends Plan> extends
PhysicalUnary<CHILD
@Override
public String toString() {
- return Utils.toSqlString("PhysicalWindow",
+ return Utils.toSqlString("PhysicalWindow[" + id.asInt() + "]",
"windowFrameGroup", windowFrameGroup,
"requiredProperties", requireProperties
);
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/nereids/datasets/tpch/AnalyzeCheckTestBase.java
b/fe/fe-core/src/test/java/org/apache/doris/nereids/datasets/tpch/AnalyzeCheckTestBase.java
index bd401cece9..fb26d9670b 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/nereids/datasets/tpch/AnalyzeCheckTestBase.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/nereids/datasets/tpch/AnalyzeCheckTestBase.java
@@ -19,7 +19,7 @@ package org.apache.doris.nereids.datasets.tpch;
import org.apache.doris.nereids.analyzer.Unbound;
import org.apache.doris.nereids.trees.expressions.Expression;
-import org.apache.doris.nereids.trees.expressions.NamedExpressionUtil;
+import org.apache.doris.nereids.trees.expressions.StatementScopeIdGenerator;
import org.apache.doris.nereids.trees.plans.Plan;
import org.apache.doris.nereids.trees.plans.logical.LogicalPlan;
import org.apache.doris.utframe.TestWithFeService;
@@ -32,7 +32,7 @@ public abstract class AnalyzeCheckTestBase extends
TestWithFeService {
@Override
public void runBeforeEach() throws Exception {
- NamedExpressionUtil.clear();
+ StatementScopeIdGenerator.clear();
}
protected void checkAnalyze(String sql) {
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/nereids/postprocess/MergeProjectPostProcessTest.java
b/fe/fe-core/src/test/java/org/apache/doris/nereids/postprocess/MergeProjectPostProcessTest.java
index 080c40a3ed..063f0ca3e6 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/nereids/postprocess/MergeProjectPostProcessTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/nereids/postprocess/MergeProjectPostProcessTest.java
@@ -26,8 +26,8 @@ import org.apache.doris.nereids.trees.expressions.Alias;
import org.apache.doris.nereids.trees.expressions.NamedExpression;
import org.apache.doris.nereids.trees.expressions.Slot;
import org.apache.doris.nereids.trees.expressions.SlotReference;
+import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.nereids.trees.plans.PreAggStatus;
-import org.apache.doris.nereids.trees.plans.RelationId;
import org.apache.doris.nereids.trees.plans.physical.PhysicalOlapScan;
import org.apache.doris.nereids.trees.plans.physical.PhysicalPlan;
import org.apache.doris.nereids.trees.plans.physical.PhysicalProject;
@@ -74,7 +74,7 @@ public class MergeProjectPostProcessTest {
t1Output.add(b);
t1Output.add(c);
LogicalProperties t1Properties = new LogicalProperties(() -> t1Output);
- PhysicalOlapScan scan = new
PhysicalOlapScan(RelationId.createGenerator().getNextId(), t1, qualifier, 0L,
+ PhysicalOlapScan scan = new
PhysicalOlapScan(ObjectId.createGenerator().getNextId(), t1, qualifier, 0L,
Collections.emptyList(), Collections.emptyList(), null,
PreAggStatus.on(),
Optional.empty(), t1Properties);
Alias x = new Alias(a, "x");
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/AnalyzeSubQueryTest.java
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/AnalyzeSubQueryTest.java
index 5a568a8586..844a847b09 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/AnalyzeSubQueryTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/AnalyzeSubQueryTest.java
@@ -25,8 +25,8 @@ import org.apache.doris.nereids.parser.NereidsParser;
import org.apache.doris.nereids.properties.PhysicalProperties;
import org.apache.doris.nereids.trees.expressions.EqualTo;
import org.apache.doris.nereids.trees.expressions.ExprId;
-import org.apache.doris.nereids.trees.expressions.NamedExpressionUtil;
import org.apache.doris.nereids.trees.expressions.SlotReference;
+import org.apache.doris.nereids.trees.expressions.StatementScopeIdGenerator;
import org.apache.doris.nereids.trees.plans.physical.PhysicalPlan;
import org.apache.doris.nereids.types.BigIntType;
import org.apache.doris.nereids.util.FieldChecker;
@@ -82,13 +82,13 @@ public class AnalyzeSubQueryTest extends TestWithFeService
implements MemoPatter
@Override
protected void runBeforeEach() throws Exception {
- NamedExpressionUtil.clear();
+ StatementScopeIdGenerator.clear();
}
@Test
public void testTranslateCase() throws Exception {
for (String sql : testSql) {
- NamedExpressionUtil.clear();
+ StatementScopeIdGenerator.clear();
StatementContext statementContext =
MemoTestUtils.createStatementContext(connectContext, sql);
NereidsPlanner planner = new NereidsPlanner(statementContext);
PhysicalPlan plan = planner.plan(
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/AnalyzeWhereSubqueryTest.java
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/AnalyzeWhereSubqueryTest.java
index 9e3dd545fa..7425615fab 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/AnalyzeWhereSubqueryTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/AnalyzeWhereSubqueryTest.java
@@ -39,8 +39,8 @@ import org.apache.doris.nereids.trees.expressions.Alias;
import org.apache.doris.nereids.trees.expressions.EqualTo;
import org.apache.doris.nereids.trees.expressions.ExprId;
import org.apache.doris.nereids.trees.expressions.LessThan;
-import org.apache.doris.nereids.trees.expressions.NamedExpressionUtil;
import org.apache.doris.nereids.trees.expressions.SlotReference;
+import org.apache.doris.nereids.trees.expressions.StatementScopeIdGenerator;
import org.apache.doris.nereids.trees.expressions.functions.agg.Max;
import org.apache.doris.nereids.trees.expressions.functions.agg.Sum;
import org.apache.doris.nereids.trees.plans.JoinType;
@@ -120,7 +120,7 @@ public class AnalyzeWhereSubqueryTest extends
TestWithFeService implements MemoP
@Override
protected void runBeforeEach() throws Exception {
- NamedExpressionUtil.clear();
+ StatementScopeIdGenerator.clear();
}
@Test
@@ -134,7 +134,7 @@ public class AnalyzeWhereSubqueryTest extends
TestWithFeService implements MemoP
for (String sql : testSql) {
try {
- NamedExpressionUtil.clear();
+ StatementScopeIdGenerator.clear();
StatementContext statementContext =
MemoTestUtils.createStatementContext(connectContext, sql);
PhysicalPlan plan = new NereidsPlanner(statementContext).plan(
parser.parseSingle(sql),
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/BindSlotReferenceTest.java
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/BindSlotReferenceTest.java
index abc18a70c7..ad8ca7bbc5 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/BindSlotReferenceTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/BindSlotReferenceTest.java
@@ -20,8 +20,8 @@ package org.apache.doris.nereids.rules.analysis;
import org.apache.doris.nereids.analyzer.UnboundSlot;
import org.apache.doris.nereids.exceptions.AnalysisException;
import org.apache.doris.nereids.trees.expressions.Alias;
-import org.apache.doris.nereids.trees.expressions.NamedExpressionUtil;
import org.apache.doris.nereids.trees.expressions.SlotReference;
+import org.apache.doris.nereids.trees.expressions.StatementScopeIdGenerator;
import org.apache.doris.nereids.trees.expressions.functions.agg.Count;
import org.apache.doris.nereids.trees.expressions.literal.IntegerLiteral;
import org.apache.doris.nereids.trees.plans.JoinType;
@@ -45,7 +45,7 @@ class BindSlotReferenceTest {
@BeforeEach
public void beforeEach() throws Exception {
- NamedExpressionUtil.clear();
+ StatementScopeIdGenerator.clear();
}
@Test
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/RegisterCTETest.java
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/RegisterCTETest.java
index 8e7e55172e..78760b1f7e 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/RegisterCTETest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/RegisterCTETest.java
@@ -36,8 +36,8 @@ import
org.apache.doris.nereids.rules.rewrite.logical.UnCorrelatedApplyFilter;
import org.apache.doris.nereids.trees.expressions.Alias;
import org.apache.doris.nereids.trees.expressions.EqualTo;
import org.apache.doris.nereids.trees.expressions.ExprId;
-import org.apache.doris.nereids.trees.expressions.NamedExpressionUtil;
import org.apache.doris.nereids.trees.expressions.SlotReference;
+import org.apache.doris.nereids.trees.expressions.StatementScopeIdGenerator;
import org.apache.doris.nereids.trees.expressions.functions.agg.Count;
import org.apache.doris.nereids.trees.plans.JoinType;
import org.apache.doris.nereids.trees.plans.logical.LogicalPlan;
@@ -102,7 +102,7 @@ public class RegisterCTETest extends TestWithFeService
implements MemoPatternMat
@Override
protected void runBeforeEach() throws Exception {
- NamedExpressionUtil.clear();
+ StatementScopeIdGenerator.clear();
}
private CTEContext getCTEContextAfterRegisterCTE(String sql) {
@@ -126,7 +126,7 @@ public class RegisterCTETest extends TestWithFeService
implements MemoPatternMat
};
for (String sql : testSql) {
- NamedExpressionUtil.clear();
+ StatementScopeIdGenerator.clear();
StatementContext statementContext =
MemoTestUtils.createStatementContext(connectContext, sql);
PhysicalPlan plan = new NereidsPlanner(statementContext).plan(
parser.parseSingle(sql),
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/exploration/join/OuterJoinAssocTest.java
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/exploration/join/OuterJoinAssocTest.java
index 90eeefee02..ad98b7650f 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/exploration/join/OuterJoinAssocTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/exploration/join/OuterJoinAssocTest.java
@@ -18,7 +18,7 @@
package org.apache.doris.nereids.rules.exploration.join;
import org.apache.doris.common.Pair;
-import org.apache.doris.nereids.trees.expressions.NamedExpressionUtil;
+import org.apache.doris.nereids.trees.expressions.StatementScopeIdGenerator;
import org.apache.doris.nereids.trees.plans.JoinType;
import org.apache.doris.nereids.trees.plans.logical.LogicalOlapScan;
import org.apache.doris.nereids.trees.plans.logical.LogicalPlan;
@@ -39,7 +39,7 @@ class OuterJoinAssocTest implements MemoPatternMatchSupported
{
public OuterJoinAssocTest() throws Exception {
// clear id so that slot id keep consistent every running
- NamedExpressionUtil.clear();
+ StatementScopeIdGenerator.clear();
scan1 = PlanConstructor.newLogicalOlapScan(0, "t1", 0);
scan2 = PlanConstructor.newLogicalOlapScan(1, "t2", 0);
scan3 = PlanConstructor.newLogicalOlapScan(2, "t3", 0);
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/expression/rewrite/ExpressionRewriteTestHelper.java
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/expression/rewrite/ExpressionRewriteTestHelper.java
index b3ccfa0089..67315757d8 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/expression/rewrite/ExpressionRewriteTestHelper.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/expression/rewrite/ExpressionRewriteTestHelper.java
@@ -25,7 +25,7 @@ import org.apache.doris.nereids.rules.analysis.FunctionBinder;
import org.apache.doris.nereids.trees.expressions.Expression;
import org.apache.doris.nereids.trees.expressions.Slot;
import org.apache.doris.nereids.trees.expressions.SlotReference;
-import org.apache.doris.nereids.trees.plans.RelationId;
+import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.nereids.types.BigIntType;
import org.apache.doris.nereids.types.BooleanType;
import org.apache.doris.nereids.types.DataType;
@@ -52,7 +52,7 @@ public abstract class ExpressionRewriteTestHelper {
public ExpressionRewriteTestHelper() {
CascadesContext cascadesContext = MemoTestUtils.createCascadesContext(
- new UnboundRelation(new RelationId(1),
ImmutableList.of("tbl")));
+ new UnboundRelation(new ObjectId(1), ImmutableList.of("tbl")));
context = new ExpressionRewriteContext(cascadesContext);
}
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/expression/rewrite/SimplifyRangeTest.java
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/expression/rewrite/SimplifyRangeTest.java
index 5022828713..07aea19772 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/expression/rewrite/SimplifyRangeTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/expression/rewrite/SimplifyRangeTest.java
@@ -25,7 +25,7 @@ import
org.apache.doris.nereids.rules.expression.rewrite.rules.SimplifyRange;
import org.apache.doris.nereids.trees.expressions.Expression;
import org.apache.doris.nereids.trees.expressions.Slot;
import org.apache.doris.nereids.trees.expressions.SlotReference;
-import org.apache.doris.nereids.trees.plans.RelationId;
+import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.nereids.types.BigIntType;
import org.apache.doris.nereids.types.BooleanType;
import org.apache.doris.nereids.types.DataType;
@@ -52,7 +52,7 @@ public class SimplifyRangeTest {
public SimplifyRangeTest() {
CascadesContext cascadesContext = MemoTestUtils.createCascadesContext(
- new UnboundRelation(new RelationId(1),
ImmutableList.of("tbl")));
+ new UnboundRelation(new ObjectId(1), ImmutableList.of("tbl")));
context = new ExpressionRewriteContext(cascadesContext);
}
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/logical/EliminateGroupByConstantTest.java
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/logical/EliminateGroupByConstantTest.java
index 264e2b8206..9aa4a027a8 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/logical/EliminateGroupByConstantTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/logical/EliminateGroupByConstantTest.java
@@ -33,7 +33,7 @@ import
org.apache.doris.nereids.trees.expressions.functions.agg.Max;
import org.apache.doris.nereids.trees.expressions.functions.agg.Min;
import org.apache.doris.nereids.trees.expressions.literal.IntegerLiteral;
import org.apache.doris.nereids.trees.expressions.literal.StringLiteral;
-import org.apache.doris.nereids.trees.plans.RelationId;
+import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.nereids.trees.plans.logical.LogicalAggregate;
import org.apache.doris.nereids.trees.plans.logical.LogicalOlapScan;
import org.apache.doris.nereids.types.IntegerType;
@@ -69,7 +69,7 @@ public class EliminateGroupByConstantTest {
LogicalAggregate<LogicalOlapScan> aggregate = new LogicalAggregate<>(
ImmutableList.of(new IntegerLiteral(1), k2),
ImmutableList.of(k1, k2),
- new LogicalOlapScan(RelationId.createGenerator().getNextId(),
table)
+ new LogicalOlapScan(ObjectId.createGenerator().getNextId(),
table)
);
CascadesContext context =
MemoTestUtils.createCascadesContext(aggregate);
@@ -88,7 +88,7 @@ public class EliminateGroupByConstantTest {
new StringLiteral("str"), k2),
ImmutableList.of(
new Alias(new StringLiteral("str"), "str"), k1, k2),
- new LogicalOlapScan(RelationId.createGenerator().getNextId(),
table)
+ new LogicalOlapScan(ObjectId.createGenerator().getNextId(),
table)
);
CascadesContext context =
MemoTestUtils.createCascadesContext(aggregate);
@@ -112,7 +112,7 @@ public class EliminateGroupByConstantTest {
ImmutableList.of(
new Alias(new StringLiteral("str"), "str"),
k2, k1, new Alias(new IntegerLiteral(1), "integer")),
- new LogicalOlapScan(RelationId.createGenerator().getNextId(),
table)
+ new LogicalOlapScan(ObjectId.createGenerator().getNextId(),
table)
);
CascadesContext context =
MemoTestUtils.createCascadesContext(aggregate);
@@ -137,7 +137,7 @@ public class EliminateGroupByConstantTest {
new Alias(new Max(k1), "max"),
new Alias(new Min(k2), "min"),
new Alias(new Add(k1, k2), "add")),
- new LogicalOlapScan(RelationId.createGenerator().getNextId(),
table)
+ new LogicalOlapScan(ObjectId.createGenerator().getNextId(),
table)
);
CascadesContext context =
MemoTestUtils.createCascadesContext(aggregate);
@@ -161,7 +161,7 @@ public class EliminateGroupByConstantTest {
ImmutableList.of(
new Alias(new StringLiteral("str"), "str"),
k2, k1, new Alias(new IntegerLiteral(1), "integer")),
- new LogicalOlapScan(RelationId.createGenerator().getNextId(),
table)
+ new LogicalOlapScan(ObjectId.createGenerator().getNextId(),
table)
);
CascadesContext context =
MemoTestUtils.createCascadesContext(aggregate);
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/logical/EliminateOuterJoinTest.java
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/logical/EliminateOuterJoinTest.java
index 623b29c159..501cf22334 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/logical/EliminateOuterJoinTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/logical/EliminateOuterJoinTest.java
@@ -20,7 +20,7 @@ package org.apache.doris.nereids.rules.rewrite.logical;
import org.apache.doris.common.Pair;
import org.apache.doris.nereids.trees.expressions.And;
import org.apache.doris.nereids.trees.expressions.GreaterThan;
-import org.apache.doris.nereids.trees.expressions.NamedExpressionUtil;
+import org.apache.doris.nereids.trees.expressions.StatementScopeIdGenerator;
import org.apache.doris.nereids.trees.expressions.literal.Literal;
import org.apache.doris.nereids.trees.plans.JoinType;
import org.apache.doris.nereids.trees.plans.logical.LogicalOlapScan;
@@ -41,7 +41,7 @@ class EliminateOuterJoinTest implements
MemoPatternMatchSupported {
public EliminateOuterJoinTest() throws Exception {
// clear id so that slot id keep consistent every running
- NamedExpressionUtil.clear();
+ StatementScopeIdGenerator.clear();
scan1 = PlanConstructor.newLogicalOlapScan(0, "t1", 0);
scan2 = PlanConstructor.newLogicalOlapScan(1, "t2", 0);
}
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/logical/PruneOlapScanTabletTest.java
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/logical/PruneOlapScanTabletTest.java
index 0709c24d2b..7ee589a422 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/logical/PruneOlapScanTabletTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/logical/PruneOlapScanTabletTest.java
@@ -37,7 +37,7 @@ import
org.apache.doris.nereids.trees.expressions.LessThanEqual;
import org.apache.doris.nereids.trees.expressions.SlotReference;
import org.apache.doris.nereids.trees.expressions.literal.DateLiteral;
import org.apache.doris.nereids.trees.expressions.literal.IntegerLiteral;
-import org.apache.doris.nereids.trees.plans.RelationId;
+import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.nereids.trees.plans.logical.LogicalFilter;
import org.apache.doris.nereids.trees.plans.logical.LogicalOlapScan;
import org.apache.doris.nereids.types.DataType;
@@ -149,7 +149,7 @@ public class PruneOlapScanTabletTest {
LogicalFilter<LogicalOlapScan> filter = new LogicalFilter<>(
ImmutableSet.of(greaterThanEqual, lessThanEqual, inPredicate1,
inPredicate2, inPredicate3, equalTo),
- new LogicalOlapScan(RelationId.createGenerator().getNextId(),
olapTable));
+ new LogicalOlapScan(ObjectId.createGenerator().getNextId(),
olapTable));
Assertions.assertEquals(0,
filter.child().getSelectedTabletIds().size());
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/logical/PushdownExpressionsInHashConditionTest.java
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/logical/PushdownExpressionsInHashConditionTest.java
index 4b4278be9e..61c4365db1 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/logical/PushdownExpressionsInHashConditionTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/logical/PushdownExpressionsInHashConditionTest.java
@@ -21,7 +21,7 @@ import org.apache.doris.nereids.NereidsPlanner;
import org.apache.doris.nereids.parser.NereidsParser;
import org.apache.doris.nereids.properties.PhysicalProperties;
import org.apache.doris.nereids.trees.expressions.Cast;
-import org.apache.doris.nereids.trees.expressions.NamedExpressionUtil;
+import org.apache.doris.nereids.trees.expressions.StatementScopeIdGenerator;
import org.apache.doris.nereids.util.MemoPatternMatchSupported;
import org.apache.doris.nereids.util.PlanChecker;
import org.apache.doris.utframe.TestWithFeService;
@@ -63,7 +63,7 @@ public class PushdownExpressionsInHashConditionTest extends
TestWithFeService im
@Override
protected void runBeforeEach() throws Exception {
- NamedExpressionUtil.clear();
+ StatementScopeIdGenerator.clear();
}
@Test
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/logical/PushdownLimitTest.java
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/logical/PushdownLimitTest.java
index 8926f7f3a3..61271f49b0 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/logical/PushdownLimitTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/logical/PushdownLimitTest.java
@@ -23,8 +23,8 @@ import org.apache.doris.nereids.trees.expressions.EqualTo;
import org.apache.doris.nereids.trees.expressions.Expression;
import org.apache.doris.nereids.trees.plans.JoinType;
import org.apache.doris.nereids.trees.plans.LimitPhase;
+import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.nereids.trees.plans.Plan;
-import org.apache.doris.nereids.trees.plans.RelationId;
import org.apache.doris.nereids.trees.plans.logical.LogicalJoin;
import org.apache.doris.nereids.trees.plans.logical.LogicalLimit;
import org.apache.doris.nereids.trees.plans.logical.LogicalOlapScan;
@@ -265,8 +265,8 @@ class PushdownLimitTest extends TestWithFeService
implements MemoPatternMatchSup
LogicalJoin<? extends Plan, ? extends Plan> join = new LogicalJoin<>(
joinType,
joinConditions,
- new LogicalOlapScan(new RelationId(0), PlanConstructor.score),
- new LogicalOlapScan(new RelationId(1), PlanConstructor.student)
+ new LogicalOlapScan(new ObjectId(0), PlanConstructor.score),
+ new LogicalOlapScan(new ObjectId(1), PlanConstructor.student)
);
if (hasProject) {
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/nereids/sqltest/SqlTestBase.java
b/fe/fe-core/src/test/java/org/apache/doris/nereids/sqltest/SqlTestBase.java
index 3151c2d7bd..b747ad40ae 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/nereids/sqltest/SqlTestBase.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/sqltest/SqlTestBase.java
@@ -17,7 +17,7 @@
package org.apache.doris.nereids.sqltest;
-import org.apache.doris.nereids.trees.expressions.NamedExpressionUtil;
+import org.apache.doris.nereids.trees.expressions.StatementScopeIdGenerator;
import org.apache.doris.nereids.util.MemoPatternMatchSupported;
import org.apache.doris.utframe.TestWithFeService;
@@ -80,6 +80,6 @@ public abstract class SqlTestBase extends TestWithFeService
implements MemoPatte
@Override
protected void runBeforeEach() throws Exception {
- NamedExpressionUtil.clear();
+ StatementScopeIdGenerator.clear();
}
}
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/ViewTest.java
b/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/ViewTest.java
index 71ab84f5a8..8e9f69fcd8 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/ViewTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/ViewTest.java
@@ -78,7 +78,7 @@ public class ViewTest extends TestWithFeService implements
MemoPatternMatchSuppo
@Override
protected void runBeforeEach() throws Exception {
- NamedExpressionUtil.clear();
+ StatementScopeIdGenerator.clear();
}
@Test
@@ -96,7 +96,7 @@ public class ViewTest extends TestWithFeService implements
MemoPatternMatchSuppo
// check whether they can be translated.
for (String sql : testSql) {
- NamedExpressionUtil.clear();
+ StatementScopeIdGenerator.clear();
System.out.println("\n\n***** " + sql + " *****\n\n");
StatementContext statementContext =
MemoTestUtils.createStatementContext(connectContext, sql);
NereidsPlanner planner = new NereidsPlanner(statementContext);
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/plans/PlanEqualsTest.java
b/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/plans/PlanEqualsTest.java
index 5f7b8bac70..1075432653 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/plans/PlanEqualsTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/plans/PlanEqualsTest.java
@@ -255,7 +255,7 @@ public class PlanEqualsTest {
selectedTabletId.addAll(partition.getBaseIndex().getTabletIdsInOrder());
}
- RelationId id = RelationUtil.newRelationId();
+ ObjectId id = RelationUtil.newRelationId();
PhysicalOlapScan actual = new PhysicalOlapScan(id, olapTable,
Lists.newArrayList("a"),
olapTable.getBaseIndexId(), selectedTabletId,
olapTable.getPartitionIds(), distributionSpecHash,
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/plans/PlanToStringTest.java
b/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/plans/PlanToStringTest.java
index 2017fc29b9..1e33538cb5 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/plans/PlanToStringTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/plans/PlanToStringTest.java
@@ -57,14 +57,14 @@ public class PlanToStringTest {
new SlotReference(new ExprId(0), "a", BigIntType.INSTANCE,
true, Lists.newArrayList())), child);
Assertions.assertTrue(plan.toString()
- .matches("LogicalAggregate \\( groupByExpr=\\[],
outputExpr=\\[a#\\d+], hasRepeat=false \\)"));
+ .matches("LogicalAggregate\\[\\d+\\] \\( groupByExpr=\\[],
outputExpr=\\[a#\\d+], hasRepeat=false \\)"));
}
@Test
public void testLogicalFilter(@Mocked Plan child) {
LogicalFilter<Plan> plan = new LogicalFilter<>(ImmutableSet.of(new
EqualTo(Literal.of(1), Literal.of(1))), child);
-
- Assertions.assertEquals("LogicalFilter ( predicates=(1 = 1) )",
plan.toString());
+ Assertions.assertTrue(plan.toString().matches(
+ "LogicalFilter\\[\\d+\\] \\( predicates=\\(1 = 1\\) \\)"));
}
@Test
@@ -74,7 +74,7 @@ public class PlanToStringTest {
new SlotReference(new ExprId(1), "b",
BigIntType.INSTANCE, true, Lists.newArrayList()))),
left, right);
Assertions.assertTrue(plan.toString().matches(
- "LogicalJoin \\( type=INNER_JOIN,
markJoinSlotReference=Optional.empty, hashJoinConjuncts=\\[\\(a#\\d+ =
b#\\d+\\)], otherJoinConjuncts=\\[] \\)"));
+ "LogicalJoin\\[\\d+\\] \\( type=INNER_JOIN,
markJoinSlotReference=Optional.empty, hashJoinConjuncts=\\[\\(a#\\d+ =
b#\\d+\\)], otherJoinConjuncts=\\[] \\)"));
}
@Test
@@ -91,7 +91,7 @@ public class PlanToStringTest {
LogicalProject<Plan> plan = new LogicalProject<>(ImmutableList.of(
new SlotReference(new ExprId(0), "a", BigIntType.INSTANCE,
true, Lists.newArrayList())), child);
- Assertions.assertTrue(plan.toString().matches("LogicalProject \\(
distinct=false, projects=\\[a#\\d+], excepts=\\[], canEliminate=true \\)"));
+
Assertions.assertTrue(plan.toString().matches("LogicalProject\\[\\d+\\] \\(
distinct=false, projects=\\[a#\\d+], excepts=\\[], canEliminate=true \\)"));
}
@Test
@@ -101,6 +101,6 @@ public class PlanToStringTest {
new OrderKey(new SlotReference("col2", IntegerType.INSTANCE),
true, true));
LogicalSort<Plan> plan = new LogicalSort<>(orderKeyList, child);
- Assertions.assertTrue(plan.toString().matches("LogicalSort \\(
orderKeys=\\[col1#\\d+ asc null first, col2#\\d+ asc null first] \\)"));
+ Assertions.assertTrue(plan.toString().matches("LogicalSort\\[\\d+\\]
\\( orderKeys=\\[col1#\\d+ asc null first, col2#\\d+ asc null first] \\)"));
}
}
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/nereids/util/PlanConstructor.java
b/fe/fe-core/src/test/java/org/apache/doris/nereids/util/PlanConstructor.java
index 3631b6b2b3..c1d9dcf08d 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/nereids/util/PlanConstructor.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/nereids/util/PlanConstructor.java
@@ -25,7 +25,7 @@ import org.apache.doris.catalog.OlapTable;
import org.apache.doris.catalog.PartitionInfo;
import org.apache.doris.catalog.Type;
import org.apache.doris.common.IdGenerator;
-import org.apache.doris.nereids.trees.plans.RelationId;
+import org.apache.doris.nereids.trees.plans.ObjectId;
import org.apache.doris.nereids.trees.plans.logical.LogicalOlapScan;
import org.apache.doris.thrift.TStorageType;
@@ -44,7 +44,7 @@ public class PlanConstructor {
public static final LogicalOlapScan scan3;
public static final LogicalOlapScan scan4;
- private static final IdGenerator<RelationId> RELATION_ID_GENERATOR =
RelationId.createGenerator();
+ private static final IdGenerator<ObjectId> RELATION_ID_GENERATOR =
ObjectId.createGenerator();
static {
student = new OlapTable(0L, "student",
@@ -119,11 +119,11 @@ public class PlanConstructor {
}
public static LogicalOlapScan newLogicalOlapScanWithSameId(long tableId,
String tableName, int hashColumn) {
- return new LogicalOlapScan(RelationId.createGenerator().getNextId(),
+ return new LogicalOlapScan(ObjectId.createGenerator().getNextId(),
newOlapTable(tableId, tableName, hashColumn),
ImmutableList.of("db"));
}
- public static RelationId getNextRelationId() {
+ public static ObjectId getNextRelationId() {
return RELATION_ID_GENERATOR.getNextId();
}
}
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/nereids/util/ReadLockTest.java
b/fe/fe-core/src/test/java/org/apache/doris/nereids/util/ReadLockTest.java
index 4a7bd2f765..0db39e9e11 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/nereids/util/ReadLockTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/util/ReadLockTest.java
@@ -30,6 +30,8 @@ import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
public class ReadLockTest extends SSBTestBase {
@@ -100,7 +102,9 @@ public class ReadLockTest extends SSBTestBase {
CascadesContext cascadesContext = planner.getCascadesContext();
List<Table> f = (List<Table>)
Deencapsulation.getField(cascadesContext, "tables");
Assertions.assertEquals(2, f.size());
- Assertions.assertEquals("supplier",
f.stream().map(Table::getName).findFirst().get());
+ Set<String> tableNames =
f.stream().map(Table::getName).collect(Collectors.toSet());
+ Assertions.assertTrue(tableNames.contains("supplier"));
+ Assertions.assertTrue(tableNames.contains("lineorder"));
}
}
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/utframe/TestWithFeService.java
b/fe/fe-core/src/test/java/org/apache/doris/utframe/TestWithFeService.java
index 3068340c0b..0507e035a3 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/utframe/TestWithFeService.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/utframe/TestWithFeService.java
@@ -54,7 +54,7 @@ import org.apache.doris.common.MetaNotFoundException;
import org.apache.doris.common.util.SqlParserUtils;
import org.apache.doris.nereids.CascadesContext;
import org.apache.doris.nereids.StatementContext;
-import org.apache.doris.nereids.trees.expressions.NamedExpressionUtil;
+import org.apache.doris.nereids.trees.expressions.StatementScopeIdGenerator;
import org.apache.doris.nereids.trees.plans.logical.LogicalPlan;
import org.apache.doris.nereids.util.MemoTestUtils;
import org.apache.doris.planner.Planner;
@@ -135,7 +135,7 @@ public abstract class TestWithFeService {
public final void afterAll() throws Exception {
runAfterAll();
Env.getCurrentEnv().clear();
- NamedExpressionUtil.clear();
+ StatementScopeIdGenerator.clear();
cleanDorisFeDir();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]