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

Reply via email to