This is an automated email from the ASF dual-hosted git repository.
huajianlan 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 d2d5c19d51 [Improvement](Nereids) Avoid unsafe cast. (#12603)
d2d5c19d51 is described below
commit d2d5c19d513106fdf9526f485c5bb2adc290e2cd
Author: Shuo Wang <[email protected]>
AuthorDate: Thu Sep 15 12:02:35 2022 +0800
[Improvement](Nereids) Avoid unsafe cast. (#12603)
This PR changed some interfaces to avoid unsafe cast.
- Modify `Plan.getExpressions()`'s return type from `List<Expression>` to
`List<? extends Expression>`
Return projects (type is a list of named expression) in `getExpressions`
can avoid unsafe cast. See `LogicalProject.getExpression()` as an example.
- Modify `EmptyRelation.getProjects()`'s return type from
`List<NamedExpression>` to `List<? extends NamedExpression>`
Creating empty relation with a list of slots can avoid unsafe cast. See the
`EliminateLimit` rule for example.
---
.../main/java/org/apache/doris/nereids/analyzer/Relation.java | 5 +++++
.../apache/doris/nereids/analyzer/UnboundOneRowRelation.java | 2 +-
.../org/apache/doris/nereids/analyzer/UnboundRelation.java | 2 +-
.../org/apache/doris/nereids/rules/analysis/BindFunction.java | 2 +-
.../doris/nereids/rules/rewrite/logical/EliminateFilter.java | 4 +---
.../doris/nereids/rules/rewrite/logical/EliminateLimit.java | 4 +---
.../java/org/apache/doris/nereids/trees/plans/GroupPlan.java | 2 +-
.../main/java/org/apache/doris/nereids/trees/plans/Plan.java | 2 +-
.../doris/nereids/trees/plans/algebra/EmptyRelation.java | 5 +++--
.../org/apache/doris/nereids/trees/plans/algebra/Scan.java | 11 -----------
.../apache/doris/nereids/trees/plans/commands/Command.java | 2 +-
.../doris/nereids/trees/plans/logical/LogicalAggregate.java | 2 +-
.../doris/nereids/trees/plans/logical/LogicalApply.java | 2 +-
.../nereids/trees/plans/logical/LogicalAssertNumRows.java | 2 +-
.../nereids/trees/plans/logical/LogicalEmptyRelation.java | 10 +++++-----
.../doris/nereids/trees/plans/logical/LogicalFilter.java | 2 +-
.../doris/nereids/trees/plans/logical/LogicalHaving.java | 2 +-
.../apache/doris/nereids/trees/plans/logical/LogicalJoin.java | 2 +-
.../doris/nereids/trees/plans/logical/LogicalLimit.java | 2 +-
.../nereids/trees/plans/logical/LogicalOneRowRelation.java | 4 ++--
.../doris/nereids/trees/plans/logical/LogicalProject.java | 6 +++---
.../doris/nereids/trees/plans/logical/LogicalRelation.java | 2 +-
.../doris/nereids/trees/plans/logical/LogicalSelectHint.java | 2 +-
.../apache/doris/nereids/trees/plans/logical/LogicalSort.java | 2 +-
.../nereids/trees/plans/logical/LogicalSubQueryAlias.java | 5 ++---
.../apache/doris/nereids/trees/plans/logical/LogicalTopN.java | 2 +-
.../nereids/trees/plans/physical/AbstractPhysicalJoin.java | 2 +-
.../nereids/trees/plans/physical/AbstractPhysicalSort.java | 2 +-
.../doris/nereids/trees/plans/physical/PhysicalAggregate.java | 2 +-
.../nereids/trees/plans/physical/PhysicalAssertNumRows.java | 2 +-
.../nereids/trees/plans/physical/PhysicalDistribute.java | 2 +-
.../nereids/trees/plans/physical/PhysicalEmptyRelation.java | 10 +++++-----
.../doris/nereids/trees/plans/physical/PhysicalFilter.java | 2 +-
.../doris/nereids/trees/plans/physical/PhysicalLimit.java | 10 +++-------
.../nereids/trees/plans/physical/PhysicalOneRowRelation.java | 4 ++--
.../doris/nereids/trees/plans/physical/PhysicalProject.java | 4 ++--
.../doris/nereids/trees/plans/physical/PhysicalRelation.java | 2 +-
.../doris/nereids/trees/plans/physical/PhysicalTopN.java | 9 ---------
.../doris/nereids/datasets/tpch/AnalyzeCheckTestBase.java | 2 +-
39 files changed, 59 insertions(+), 82 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/analyzer/Relation.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/analyzer/Relation.java
index 48b30ec450..349179ba6c 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/analyzer/Relation.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/analyzer/Relation.java
@@ -17,8 +17,13 @@
package org.apache.doris.nereids.analyzer;
+import org.apache.doris.nereids.trees.expressions.Slot;
+
+import java.util.List;
+
/**
* Relation base interface
*/
public interface Relation {
+ List<Slot> getOutput();
}
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 6ba9b72674..e8149474b7 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
@@ -68,7 +68,7 @@ public class UnboundOneRowRelation extends LogicalLeaf
implements Unbound, OneRo
}
@Override
- public List<Expression> getExpressions() {
+ public List<? extends Expression> getExpressions() {
throw new
UnsupportedOperationException(this.getClass().getSimpleName() + " don't support
getExpression()");
}
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 4fce8df6e4..a1eda47a00 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
@@ -114,7 +114,7 @@ public class UnboundRelation extends LogicalLeaf implements
Relation, Unbound {
}
@Override
- public List<Expression> getExpressions() {
+ public List<? extends Expression> getExpressions() {
throw new
UnsupportedOperationException(this.getClass().getSimpleName() + " don't support
getExpression()");
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindFunction.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindFunction.java
index db2135fcc3..40782b2e28 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindFunction.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindFunction.java
@@ -100,7 +100,7 @@ public class BindFunction implements AnalysisRuleFactory {
);
}
- private <E extends Expression> List<E> bind(List<E> exprList, Env env) {
+ private <E extends Expression> List<E> bind(List<? extends E> exprList,
Env env) {
return exprList.stream()
.map(expr -> FunctionBinder.INSTANCE.bind(expr, env))
.collect(Collectors.toList());
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/EliminateFilter.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/EliminateFilter.java
index a333634db2..d8b1b24794 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/EliminateFilter.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/EliminateFilter.java
@@ -23,8 +23,6 @@ import
org.apache.doris.nereids.rules.rewrite.OneRewriteRuleFactory;
import org.apache.doris.nereids.trees.expressions.literal.BooleanLiteral;
import org.apache.doris.nereids.trees.plans.logical.LogicalEmptyRelation;
-import java.util.List;
-
/**
* Eliminate filter false.
*/
@@ -33,7 +31,7 @@ public class EliminateFilter extends OneRewriteRuleFactory {
public Rule build() {
return logicalFilter()
.when(filter -> filter.getPredicates() == BooleanLiteral.FALSE)
- .then(filter -> new LogicalEmptyRelation((List)
filter.getOutput()))
+ .then(filter -> new LogicalEmptyRelation(filter.getOutput()))
.toRule(RuleType.ELIMINATE_FILTER);
}
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/EliminateLimit.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/EliminateLimit.java
index 7c7b325a45..cb3e55832e 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/EliminateLimit.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/EliminateLimit.java
@@ -22,8 +22,6 @@ import org.apache.doris.nereids.rules.RuleType;
import org.apache.doris.nereids.rules.rewrite.OneRewriteRuleFactory;
import org.apache.doris.nereids.trees.plans.logical.LogicalEmptyRelation;
-import java.util.List;
-
/**
* Eliminate limit = 0.
*/
@@ -32,7 +30,7 @@ public class EliminateLimit extends OneRewriteRuleFactory {
public Rule build() {
return logicalLimit()
.when(limit -> limit.getLimit() == 0)
- .then(limit -> new LogicalEmptyRelation((List)
limit.getOutput()))
+ .then(limit -> new LogicalEmptyRelation(limit.getOutput()))
.toRule(RuleType.ELIMINATE_LIMIT);
}
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/GroupPlan.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/GroupPlan.java
index c38c1f09f5..481b292e03 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/GroupPlan.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/GroupPlan.java
@@ -53,7 +53,7 @@ public class GroupPlan extends LogicalLeaf {
}
@Override
- public List<Expression> getExpressions() {
+ public List<? extends Expression> getExpressions() {
return ImmutableList.of();
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/Plan.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/Plan.java
index 79c50c264b..c61f9f0b1d 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/Plan.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/Plan.java
@@ -43,7 +43,7 @@ public interface Plan extends TreeNode<Plan> {
<R, C> R accept(PlanVisitor<R, C> visitor, C context);
- List<Expression> getExpressions();
+ List<? extends Expression> getExpressions();
LogicalProperties getLogicalProperties();
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/algebra/EmptyRelation.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/algebra/EmptyRelation.java
index ed6a6907ad..f6ad9a015e 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/algebra/EmptyRelation.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/algebra/EmptyRelation.java
@@ -17,6 +17,7 @@
package org.apache.doris.nereids.trees.plans.algebra;
+import org.apache.doris.nereids.analyzer.Relation;
import org.apache.doris.nereids.trees.expressions.NamedExpression;
import java.util.List;
@@ -27,6 +28,6 @@ import java.util.List;
* e.g.
* select * from tbl limit 0
*/
-public interface EmptyRelation {
- List<NamedExpression> getProjects();
+public interface EmptyRelation extends Relation {
+ List<? extends NamedExpression> getProjects();
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/algebra/Scan.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/algebra/Scan.java
index 37e0b75bd7..c6a0b454b3 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/algebra/Scan.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/algebra/Scan.java
@@ -19,21 +19,10 @@ package org.apache.doris.nereids.trees.plans.algebra;
import org.apache.doris.catalog.Table;
import org.apache.doris.nereids.analyzer.Relation;
-import org.apache.doris.nereids.trees.expressions.Expression;
-import org.apache.doris.nereids.trees.expressions.Slot;
-
-import java.util.Collections;
-import java.util.List;
/**
* Common interface for logical/physical scan.
*/
public interface Scan extends Relation {
- List<Expression> getExpressions();
-
Table getTable();
-
- default List<Slot> getOutput() {
- return Collections.emptyList();
- }
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/Command.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/Command.java
index b2fc279b6e..1326169f45 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/Command.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/Command.java
@@ -64,7 +64,7 @@ public interface Command extends LogicalPlan {
}
@Override
- default List<Expression> getExpressions() {
+ default List<? extends Expression> getExpressions() {
throw new RuntimeException("Command do not implement getExpressions");
}
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 7b13ace319..cbe9e402ef 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
@@ -134,7 +134,7 @@ public class LogicalAggregate<CHILD_TYPE extends Plan>
extends LogicalUnary<CHIL
}
@Override
- public List<Expression> getExpressions() {
+ public List<? extends Expression> getExpressions() {
return new ImmutableList.Builder<Expression>()
.addAll(groupByExpressions)
.addAll(outputExpressions)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalApply.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalApply.java
index a0ea3504d2..db7afb481d 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalApply.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalApply.java
@@ -140,7 +140,7 @@ public class LogicalApply<LEFT_CHILD_TYPE extends Plan,
RIGHT_CHILD_TYPE extends
}
@Override
- public List<Expression> getExpressions() {
+ public List<? extends Expression> getExpressions() {
if (correlationFilter.isPresent()) {
return new ImmutableList.Builder<Expression>()
.addAll(correlationSlot)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalAssertNumRows.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalAssertNumRows.java
index ebeaad9748..8babd612bf 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalAssertNumRows.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalAssertNumRows.java
@@ -87,7 +87,7 @@ public class LogicalAssertNumRows<CHILD_TYPE extends Plan>
extends LogicalUnary<
}
@Override
- public List<Expression> getExpressions() {
+ public List<? extends Expression> getExpressions() {
return ImmutableList.of(assertNumRowsElement);
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalEmptyRelation.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalEmptyRelation.java
index 0db6d661b3..b8b185f7fb 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalEmptyRelation.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalEmptyRelation.java
@@ -40,13 +40,13 @@ import java.util.Optional;
* select * from tbl limit 0
*/
public class LogicalEmptyRelation extends LogicalLeaf implements EmptyRelation
{
- private final List<NamedExpression> projects;
+ private final List<? extends NamedExpression> projects;
- public LogicalEmptyRelation(List<NamedExpression> projects) {
+ public LogicalEmptyRelation(List<? extends NamedExpression> projects) {
this(projects, Optional.empty(), Optional.empty());
}
- public LogicalEmptyRelation(List<NamedExpression> projects,
Optional<GroupExpression> groupExpression,
+ public LogicalEmptyRelation(List<? extends NamedExpression> projects,
Optional<GroupExpression> groupExpression,
Optional<LogicalProperties> logicalProperties) {
super(PlanType.LOGICAL_ONE_ROW_RELATION, groupExpression,
logicalProperties);
this.projects = ImmutableList.copyOf(Objects.requireNonNull(projects,
"projects can not be null"));
@@ -58,12 +58,12 @@ public class LogicalEmptyRelation extends LogicalLeaf
implements EmptyRelation {
}
@Override
- public List<NamedExpression> getProjects() {
+ public List<? extends NamedExpression> getProjects() {
return projects;
}
@Override
- public List<Expression> getExpressions() {
+ public List<? extends Expression> getExpressions() {
return ImmutableList.of();
}
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 641730d5ba..6225c985fd 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
@@ -89,7 +89,7 @@ public class LogicalFilter<CHILD_TYPE extends Plan> extends
LogicalUnary<CHILD_T
}
@Override
- public List<Expression> getExpressions() {
+ public List<? extends Expression> getExpressions() {
return ImmutableList.of(predicates);
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalHaving.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalHaving.java
index 11cc4f389b..2b63e09031 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalHaving.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalHaving.java
@@ -69,7 +69,7 @@ public class LogicalHaving<CHILD_TYPE extends Plan> extends
LogicalUnary<CHILD_T
}
@Override
- public List<Expression> getExpressions() {
+ public List<? extends Expression> getExpressions() {
return ImmutableList.of(predicates);
}
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 6449ccadb0..29855b4073 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
@@ -211,7 +211,7 @@ public class LogicalJoin<LEFT_CHILD_TYPE extends Plan,
RIGHT_CHILD_TYPE extends
}
@Override
- public List<Expression> getExpressions() {
+ public List<? extends Expression> getExpressions() {
Builder<Expression> builder = new Builder<Expression>()
.addAll(hashJoinConjuncts);
otherJoinCondition.ifPresent(builder::add);
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalLimit.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalLimit.java
index b1460ab43b..94ea4616e4 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalLimit.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalLimit.java
@@ -101,7 +101,7 @@ public class LogicalLimit<CHILD_TYPE extends Plan> extends
LogicalUnary<CHILD_TY
return visitor.visitLogicalLimit(this, context);
}
- public List<Expression> getExpressions() {
+ public List<? extends Expression> getExpressions() {
return ImmutableList.of();
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalOneRowRelation.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalOneRowRelation.java
index 3486fe7200..fe99d21f6f 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalOneRowRelation.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalOneRowRelation.java
@@ -65,8 +65,8 @@ public class LogicalOneRowRelation extends LogicalLeaf
implements OneRowRelation
}
@Override
- public List<Expression> getExpressions() {
- return (List) projects;
+ public List<? extends Expression> getExpressions() {
+ return projects;
}
@Override
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 afaa60723a..debc456bc0 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
@@ -83,12 +83,12 @@ public class LogicalProject<CHILD_TYPE extends Plan>
extends LogicalUnary<CHILD_
@Override
public <R, C> R accept(PlanVisitor<R, C> visitor, C context) {
- return visitor.visitLogicalProject((LogicalProject<Plan>) this,
context);
+ return visitor.visitLogicalProject(this, context);
}
@Override
- public List<Expression> getExpressions() {
- return new
ImmutableList.Builder<Expression>().addAll(projects).build();
+ public List<? extends Expression> getExpressions() {
+ return projects;
}
@Override
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 53e7ec43a2..10a94bbc9e 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
@@ -110,7 +110,7 @@ public abstract class LogicalRelation extends LogicalLeaf
implements Scan {
}
@Override
- public List<Expression> getExpressions() {
+ public List<? extends Expression> getExpressions() {
return ImmutableList.of();
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalSelectHint.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalSelectHint.java
index 401907811a..aeda4ac403 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalSelectHint.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalSelectHint.java
@@ -82,7 +82,7 @@ public class LogicalSelectHint<CHILD_TYPE extends Plan>
extends LogicalUnary<CHI
}
@Override
- public List<Expression> getExpressions() {
+ public List<? extends Expression> getExpressions() {
return ImmutableList.of();
}
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 4147adc238..d55cb58e79 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
@@ -97,7 +97,7 @@ public class LogicalSort<CHILD_TYPE extends Plan> extends
LogicalUnary<CHILD_TYP
}
@Override
- public List<Expression> getExpressions() {
+ public List<? extends Expression> getExpressions() {
return orderKeys.stream()
.map(OrderKey::getExpr)
.collect(ImmutableList.toImmutableList());
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalSubQueryAlias.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalSubQueryAlias.java
index 0f357e4ebc..02986ff027 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalSubQueryAlias.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalSubQueryAlias.java
@@ -29,7 +29,6 @@ import org.apache.doris.nereids.util.Utils;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
-import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
@@ -100,8 +99,8 @@ public class LogicalSubQueryAlias<CHILD_TYPE extends Plan>
extends LogicalUnary<
}
@Override
- public List<Expression> getExpressions() {
- return Collections.emptyList();
+ public List<? extends Expression> getExpressions() {
+ return ImmutableList.of();
}
@Override
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalTopN.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalTopN.java
index cc60c1bef7..aab24fc2d0 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalTopN.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalTopN.java
@@ -108,7 +108,7 @@ public class LogicalTopN<CHILD_TYPE extends Plan> extends
LogicalUnary<CHILD_TYP
}
@Override
- public List<Expression> getExpressions() {
+ public List<? extends Expression> getExpressions() {
return orderKeys.stream()
.map(OrderKey::getExpr)
.collect(ImmutableList.toImmutableList());
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/AbstractPhysicalJoin.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/AbstractPhysicalJoin.java
index 0a9efe9d68..1463a9cc44 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/AbstractPhysicalJoin.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/AbstractPhysicalJoin.java
@@ -91,7 +91,7 @@ public abstract class AbstractPhysicalJoin<
}
@Override
- public List<Expression> getExpressions() {
+ public List<? extends Expression> getExpressions() {
Builder<Expression> builder = new Builder<Expression>()
.addAll(hashJoinConjuncts);
otherJoinCondition.ifPresent(builder::add);
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/AbstractPhysicalSort.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/AbstractPhysicalSort.java
index 4c610d386e..b2aeece597 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/AbstractPhysicalSort.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/AbstractPhysicalSort.java
@@ -81,7 +81,7 @@ public abstract class AbstractPhysicalSort<CHILD_TYPE extends
Plan> extends Phys
}
@Override
- public List<Expression> getExpressions() {
+ public List<? extends Expression> getExpressions() {
return orderKeys.stream()
.map(OrderKey::getExpr)
.collect(ImmutableList.toImmutableList());
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalAggregate.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalAggregate.java
index 51b378bab7..f2384920e5 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalAggregate.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalAggregate.java
@@ -126,7 +126,7 @@ public class PhysicalAggregate<CHILD_TYPE extends Plan>
extends PhysicalUnary<CH
}
@Override
- public List<Expression> getExpressions() {
+ public List<? extends Expression> getExpressions() {
// TODO: partitionExprList maybe null.
return new
ImmutableList.Builder<Expression>().addAll(groupByExpressions).addAll(outputExpressions)
.addAll(partitionExpressions).build();
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalAssertNumRows.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalAssertNumRows.java
index 2ac46d9f10..e89b8804cd 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalAssertNumRows.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalAssertNumRows.java
@@ -89,7 +89,7 @@ public class PhysicalAssertNumRows<CHILD_TYPE extends Plan>
extends PhysicalUnar
}
@Override
- public List<Expression> getExpressions() {
+ public List<? extends Expression> getExpressions() {
return ImmutableList.of(assertNumRowsElement);
}
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 2e35c25d31..e0ec37bdb7 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
@@ -73,7 +73,7 @@ public class PhysicalDistribute<CHILD_TYPE extends Plan>
extends PhysicalUnary<C
}
@Override
- public List<Expression> getExpressions() {
+ public List<? extends Expression> getExpressions() {
return ImmutableList.of();
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalEmptyRelation.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalEmptyRelation.java
index 20c4fc687e..5c880ce414 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalEmptyRelation.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalEmptyRelation.java
@@ -41,13 +41,13 @@ import java.util.Optional;
* select * from tbl limit 0
*/
public class PhysicalEmptyRelation extends PhysicalLeaf implements
EmptyRelation {
- private final List<NamedExpression> projects;
+ private final List<? extends NamedExpression> projects;
- public PhysicalEmptyRelation(List<NamedExpression> projects,
LogicalProperties logicalProperties) {
+ public PhysicalEmptyRelation(List<? extends NamedExpression> projects,
LogicalProperties logicalProperties) {
this(projects, Optional.empty(), logicalProperties, null);
}
- public PhysicalEmptyRelation(List<NamedExpression> projects,
Optional<GroupExpression> groupExpression,
+ public PhysicalEmptyRelation(List<? extends NamedExpression> projects,
Optional<GroupExpression> groupExpression,
LogicalProperties logicalProperties, PhysicalProperties
physicalProperties) {
super(PlanType.PHYSICAL_EMPTY_RELATION, groupExpression,
logicalProperties, physicalProperties);
this.projects = ImmutableList.copyOf(Objects.requireNonNull(projects,
"projects can not be null"));
@@ -59,7 +59,7 @@ public class PhysicalEmptyRelation extends PhysicalLeaf
implements EmptyRelation
}
@Override
- public List<Expression> getExpressions() {
+ public List<? extends Expression> getExpressions() {
return ImmutableList.of();
}
@@ -110,7 +110,7 @@ public class PhysicalEmptyRelation extends PhysicalLeaf
implements EmptyRelation
}
@Override
- public List<NamedExpression> getProjects() {
+ public List<? extends NamedExpression> getProjects() {
return projects;
}
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 56ec49cdbc..d4160ea75c 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
@@ -86,7 +86,7 @@ public class PhysicalFilter<CHILD_TYPE extends Plan> extends
PhysicalUnary<CHILD
}
@Override
- public List<Expression> getExpressions() {
+ public List<? extends Expression> getExpressions() {
return ImmutableList.of(predicates);
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalLimit.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalLimit.java
index fb800f6d71..5243fa99ef 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalLimit.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalLimit.java
@@ -21,7 +21,6 @@ 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.expressions.literal.IntegerLiteral;
import org.apache.doris.nereids.trees.plans.Plan;
import org.apache.doris.nereids.trees.plans.PlanType;
import org.apache.doris.nereids.trees.plans.algebra.Limit;
@@ -29,7 +28,7 @@ import
org.apache.doris.nereids.trees.plans.visitor.PlanVisitor;
import org.apache.doris.nereids.util.Utils;
import com.google.common.base.Preconditions;
-import com.google.common.collect.Lists;
+import com.google.common.collect.ImmutableList;
import java.util.List;
import java.util.Objects;
@@ -93,11 +92,8 @@ public class PhysicalLimit<CHILD_TYPE extends Plan> extends
PhysicalUnary<CHILD_
}
@Override
- public List<Expression> getExpressions() {
- return Lists.newArrayList(
- new IntegerLiteral((int) limit),
- new IntegerLiteral((int) offset)
- );
+ public List<? extends Expression> getExpressions() {
+ return ImmutableList.of();
}
@Override
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalOneRowRelation.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalOneRowRelation.java
index fc44e8da29..9212032d23 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalOneRowRelation.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalOneRowRelation.java
@@ -65,8 +65,8 @@ public class PhysicalOneRowRelation extends PhysicalLeaf
implements OneRowRelati
}
@Override
- public List<Expression> getExpressions() {
- return (List) projects;
+ public List<? extends Expression> getExpressions() {
+ return projects;
}
@Override
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 e4287e4710..984a9f754e 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
@@ -91,8 +91,8 @@ public class PhysicalProject<CHILD_TYPE extends Plan> extends
PhysicalUnary<CHIL
}
@Override
- public List<Expression> getExpressions() {
- return (List) projects;
+ public List<? extends Expression> getExpressions() {
+ return projects;
}
@Override
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 5fd3fba282..7c2c78bac4 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
@@ -89,7 +89,7 @@ public abstract class PhysicalRelation extends PhysicalLeaf
implements Scan {
}
@Override
- public List<Expression> getExpressions() {
+ public List<? extends Expression> getExpressions() {
return ImmutableList.of();
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalTopN.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalTopN.java
index 8caacfc426..d3132ec0de 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalTopN.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalTopN.java
@@ -21,7 +21,6 @@ import org.apache.doris.nereids.memo.GroupExpression;
import org.apache.doris.nereids.properties.LogicalProperties;
import org.apache.doris.nereids.properties.OrderKey;
import org.apache.doris.nereids.properties.PhysicalProperties;
-import org.apache.doris.nereids.trees.expressions.Expression;
import org.apache.doris.nereids.trees.plans.Plan;
import org.apache.doris.nereids.trees.plans.PlanType;
import org.apache.doris.nereids.trees.plans.algebra.TopN;
@@ -29,7 +28,6 @@ import
org.apache.doris.nereids.trees.plans.visitor.PlanVisitor;
import org.apache.doris.nereids.util.Utils;
import com.google.common.base.Preconditions;
-import com.google.common.collect.ImmutableList;
import java.util.List;
import java.util.Objects;
@@ -105,13 +103,6 @@ public class PhysicalTopN<CHILD_TYPE extends Plan> extends
AbstractPhysicalSort<
return visitor.visitPhysicalTopN((PhysicalTopN<Plan>) this, context);
}
- @Override
- public List<Expression> getExpressions() {
- return orderKeys.stream()
- .map(OrderKey::getExpr)
- .collect(ImmutableList.toImmutableList());
- }
-
@Override
public PhysicalTopN<Plan> withChildren(List<Plan> children) {
Preconditions.checkArgument(children.size() == 1);
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 7310a8c67e..11ee8ee8cc 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
@@ -48,7 +48,7 @@ public abstract class AnalyzeCheckTestBase extends
TestWithFeService {
}
}
- List<Expression> expressions = plan.getExpressions();
+ List<? extends Expression> expressions = plan.getExpressions();
return expressions.stream().allMatch(this::checkExpressionBound);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]