This is an automated email from the ASF dual-hosted git repository. morrysnow 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 a9177569c6 [refactor](Nereids) remove trick datatype code in Expression (#16365) a9177569c6 is described below commit a9177569c6505f43a026a7452fcece1e16bc1d30 Author: morrySnow <101034200+morrys...@users.noreply.github.com> AuthorDate: Fri Feb 3 13:02:34 2023 +0800 [refactor](Nereids) remove trick datatype code in Expression (#16365) Since we already do typeCoercion bottom-up in binding step. The trick codes of dataType in Expression are useless. This PR try to remove them. --- .../org/apache/doris/nereids/trees/expressions/Add.java | 2 +- .../doris/nereids/trees/expressions/BinaryArithmetic.java | 13 +------------ .../apache/doris/nereids/trees/expressions/CaseWhen.java | 9 +-------- .../apache/doris/nereids/trees/expressions/Multiply.java | 8 +------- .../apache/doris/nereids/trees/expressions/Subtract.java | 2 +- 5 files changed, 5 insertions(+), 29 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Add.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Add.java index 13ccd1ca95..feb88c1eed 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Add.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Add.java @@ -44,7 +44,7 @@ public class Add extends BinaryArithmetic { @Override public DataType getDataType() { - return left().getDataType().promotion(); + return super.getDataType().promotion(); } @Override diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/BinaryArithmetic.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/BinaryArithmetic.java index f70b1dad82..ef89130a93 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/BinaryArithmetic.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/BinaryArithmetic.java @@ -23,7 +23,6 @@ import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable; import org.apache.doris.nereids.trees.expressions.typecoercion.ImplicitCastInputTypes; import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor; import org.apache.doris.nereids.types.DataType; -import org.apache.doris.nereids.util.TypeCoercionUtils; /** * binary arithmetic operator. Such as +, -, *, /. @@ -43,17 +42,7 @@ public abstract class BinaryArithmetic extends BinaryOperator implements Propaga @Override public DataType getDataType() throws UnboundException { - if (left().getDataType().equals(right().getDataType())) { - return left().getDataType(); - } else { - try { - return TypeCoercionUtils.findCommonNumericsType(left().getDataType(), right().getDataType()); - } catch (Exception e) { - return TypeCoercionUtils.findTightestCommonType(this, - left().getDataType(), right().getDataType()) - .orElseGet(() -> left().getDataType()); - } - } + return left().getDataType(); } @Override diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/CaseWhen.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/CaseWhen.java index 0615b182be..e99e9411ee 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/CaseWhen.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/CaseWhen.java @@ -21,7 +21,6 @@ import org.apache.doris.nereids.exceptions.UnboundException; import org.apache.doris.nereids.trees.expressions.functions.ExpressionTrait; import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor; import org.apache.doris.nereids.types.DataType; -import org.apache.doris.nereids.util.TypeCoercionUtils; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; @@ -78,13 +77,7 @@ public class CaseWhen extends Expression { @Override public DataType getDataType() { - DataType outputType = child(0).getDataType(); - for (Expression child : children) { - DataType tempType = outputType; - outputType = TypeCoercionUtils.findTightestCommonType(null, - outputType, child.getDataType()).orElse(tempType); - } - return outputType; + return child(0).getDataType(); } @Override diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Multiply.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Multiply.java index bd91f3449e..b716227307 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Multiply.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Multiply.java @@ -22,7 +22,6 @@ import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor; import org.apache.doris.nereids.types.DataType; import org.apache.doris.nereids.types.coercion.AbstractDataType; import org.apache.doris.nereids.types.coercion.NumericType; -import org.apache.doris.nereids.util.TypeCoercionUtils; import com.google.common.base.Preconditions; @@ -45,12 +44,7 @@ public class Multiply extends BinaryArithmetic { @Override public DataType getDataType() { - DataType rightType = child(0).getDataType(); - DataType leftType = child(1).getDataType(); - DataType outputType = TypeCoercionUtils.findTightestCommonType(this, - rightType, leftType).orElseGet(() -> rightType); - outputType = outputType.promotion(); - return outputType; + return super.getDataType().promotion(); } @Override diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Subtract.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Subtract.java index 1313e7f9a8..d7a0aa31b3 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Subtract.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Subtract.java @@ -44,7 +44,7 @@ public class Subtract extends BinaryArithmetic { @Override public DataType getDataType() { - return left().getDataType().promotion(); + return super.getDataType().promotion(); } @Override --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org