From de28d7cd2d5a376a441a9be8395efc8374066562 Mon Sep 17 00:00:00 2001 From: jakevin Date: Thu, 29 Feb 2024 16:55:50 +0800 Subject: [PATCH] [fix](Nereids): AssertNumRowsElement shouldn't be expression (#31581) --- .../expressions/AssertNumRowsElement.java | 41 ++----------------- .../nereids/trees/expressions/Expression.java | 3 +- .../visitor/ExpressionVisitor.java | 5 --- .../plans/logical/LogicalAssertNumRows.java | 2 +- .../plans/physical/PhysicalAssertNumRows.java | 2 +- 5 files changed, 7 insertions(+), 46 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/AssertNumRowsElement.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/AssertNumRowsElement.java index a80baaf68d..65e1fbc0ee 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/AssertNumRowsElement.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/AssertNumRowsElement.java @@ -17,22 +17,14 @@ package org.apache.doris.nereids.trees.expressions; -import org.apache.doris.nereids.trees.expressions.functions.AlwaysNotNullable; -import org.apache.doris.nereids.trees.expressions.shape.LeafExpression; -import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor; 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; -import java.util.Optional; /** * Number of rows returned by inspection in subquery. */ -public class AssertNumRowsElement extends Expression implements LeafExpression, AlwaysNotNullable { +public class AssertNumRowsElement { /** * Assertion type. */ @@ -51,7 +43,6 @@ public class AssertNumRowsElement extends Expression implements LeafExpression, public AssertNumRowsElement(long desiredNumOfRows, String subqueryString, Assertion assertion) { - super(ImmutableList.of()); this.desiredNumOfRows = desiredNumOfRows; this.subqueryString = subqueryString; this.assertion = assertion; @@ -69,12 +60,6 @@ public class AssertNumRowsElement extends Expression implements LeafExpression, return assertion; } - @Override - public AssertNumRowsElement withChildren(List children) { - Preconditions.checkArgument(children.isEmpty()); - return this; - } - @Override public String toString() { return Utils.toSqlString("AssertNumRowsElement", @@ -83,19 +68,6 @@ public class AssertNumRowsElement extends Expression implements LeafExpression, "assertion", assertion); } - @Override - public String toSql() { - return toString(); - } - - @Override - public String getExpressionName() { - if (!this.exprName.isPresent()) { - this.exprName = Optional.of(Utils.normalizeName(assertion.name().toLowerCase(), DEFAULT_EXPRESSION_NAME)); - } - return this.exprName.get(); - } - @Override public boolean equals(Object o) { if (this == o) { @@ -105,18 +77,13 @@ public class AssertNumRowsElement extends Expression implements LeafExpression, return false; } AssertNumRowsElement that = (AssertNumRowsElement) o; - return Objects.equals(this.desiredNumOfRows, that.getDesiredNumOfRows()) - && Objects.equals(this.subqueryString, that.getSubqueryString()) - && Objects.equals(this.assertion, that.getAssertion()); + return this.desiredNumOfRows == that.getDesiredNumOfRows() + && this.subqueryString.equals(that.getSubqueryString()) + && this.assertion.equals(that.getAssertion()); } @Override public int hashCode() { return Objects.hash(desiredNumOfRows, subqueryString, assertion); } - - @Override - public R accept(ExpressionVisitor visitor, C context) { - return visitor.visitAssertNumRowsElement(this, context); - } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Expression.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Expression.java index a0a8884879..6909642113 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Expression.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Expression.java @@ -252,8 +252,7 @@ public abstract class Expression extends AbstractTreeNode implements * Whether the expression is a constant. */ public boolean isConstant() { - if (this instanceof AssertNumRowsElement - || this instanceof AggregateFunction + if (this instanceof AggregateFunction || this instanceof Lambda || this instanceof MaxValue || this instanceof OrderExpression diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/visitor/ExpressionVisitor.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/visitor/ExpressionVisitor.java index 561648f900..0ffa1d98fd 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/visitor/ExpressionVisitor.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/visitor/ExpressionVisitor.java @@ -29,7 +29,6 @@ import org.apache.doris.nereids.trees.expressions.Alias; import org.apache.doris.nereids.trees.expressions.And; import org.apache.doris.nereids.trees.expressions.Any; import org.apache.doris.nereids.trees.expressions.ArrayItemReference; -import org.apache.doris.nereids.trees.expressions.AssertNumRowsElement; import org.apache.doris.nereids.trees.expressions.BinaryArithmetic; import org.apache.doris.nereids.trees.expressions.BinaryOperator; import org.apache.doris.nereids.trees.expressions.BitAnd; @@ -433,10 +432,6 @@ public abstract class ExpressionVisitor return visitSubqueryExpr(listQuery, context); } - public R visitAssertNumRowsElement(AssertNumRowsElement assertNumRowsElement, C context) { - return visit(assertNumRowsElement, context); - } - public R visitGroupingScalarFunction(GroupingScalarFunction groupingScalarFunction, C context) { return visit(groupingScalarFunction, context); } 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 3ba0a29842..21c2a11e56 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 @@ -91,7 +91,7 @@ public class LogicalAssertNumRows extends LogicalUnary< @Override public List getExpressions() { - return ImmutableList.of(assertNumRowsElement); + return ImmutableList.of(); } @Override 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 0ebc1426fc..be209c07f9 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 @@ -94,7 +94,7 @@ public class PhysicalAssertNumRows extends PhysicalUnar @Override public List getExpressions() { - return ImmutableList.of(assertNumRowsElement); + return ImmutableList.of(); } @Override