Skip to content

Commit a917756

Browse files
authored
[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.
1 parent 5e4bb98 commit a917756

5 files changed

Lines changed: 5 additions & 29 deletions

File tree

fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Add.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public Expression withChildren(List<Expression> children) {
4444

4545
@Override
4646
public DataType getDataType() {
47-
return left().getDataType().promotion();
47+
return super.getDataType().promotion();
4848
}
4949

5050
@Override

fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/BinaryArithmetic.java

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import org.apache.doris.nereids.trees.expressions.typecoercion.ImplicitCastInputTypes;
2424
import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
2525
import org.apache.doris.nereids.types.DataType;
26-
import org.apache.doris.nereids.util.TypeCoercionUtils;
2726

2827
/**
2928
* binary arithmetic operator. Such as +, -, *, /.
@@ -43,17 +42,7 @@ public Operator getLegacyOperator() {
4342

4443
@Override
4544
public DataType getDataType() throws UnboundException {
46-
if (left().getDataType().equals(right().getDataType())) {
47-
return left().getDataType();
48-
} else {
49-
try {
50-
return TypeCoercionUtils.findCommonNumericsType(left().getDataType(), right().getDataType());
51-
} catch (Exception e) {
52-
return TypeCoercionUtils.findTightestCommonType(this,
53-
left().getDataType(), right().getDataType())
54-
.orElseGet(() -> left().getDataType());
55-
}
56-
}
45+
return left().getDataType();
5746
}
5847

5948
@Override

fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/CaseWhen.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import org.apache.doris.nereids.trees.expressions.functions.ExpressionTrait;
2222
import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
2323
import org.apache.doris.nereids.types.DataType;
24-
import org.apache.doris.nereids.util.TypeCoercionUtils;
2524

2625
import com.google.common.base.Preconditions;
2726
import com.google.common.collect.ImmutableList;
@@ -78,13 +77,7 @@ public <R, C> R accept(ExpressionVisitor<R, C> visitor, C context) {
7877

7978
@Override
8079
public DataType getDataType() {
81-
DataType outputType = child(0).getDataType();
82-
for (Expression child : children) {
83-
DataType tempType = outputType;
84-
outputType = TypeCoercionUtils.findTightestCommonType(null,
85-
outputType, child.getDataType()).orElse(tempType);
86-
}
87-
return outputType;
80+
return child(0).getDataType();
8881
}
8982

9083
@Override

fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Multiply.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import org.apache.doris.nereids.types.DataType;
2323
import org.apache.doris.nereids.types.coercion.AbstractDataType;
2424
import org.apache.doris.nereids.types.coercion.NumericType;
25-
import org.apache.doris.nereids.util.TypeCoercionUtils;
2625

2726
import com.google.common.base.Preconditions;
2827

@@ -45,12 +44,7 @@ public Expression withChildren(List<Expression> children) {
4544

4645
@Override
4746
public DataType getDataType() {
48-
DataType rightType = child(0).getDataType();
49-
DataType leftType = child(1).getDataType();
50-
DataType outputType = TypeCoercionUtils.findTightestCommonType(this,
51-
rightType, leftType).orElseGet(() -> rightType);
52-
outputType = outputType.promotion();
53-
return outputType;
47+
return super.getDataType().promotion();
5448
}
5549

5650
@Override

fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Subtract.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public Expression withChildren(List<Expression> children) {
4444

4545
@Override
4646
public DataType getDataType() {
47-
return left().getDataType().promotion();
47+
return super.getDataType().promotion();
4848
}
4949

5050
@Override

0 commit comments

Comments
 (0)