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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]