Skip to content

Commit a1eda92

Browse files
author
shuo.cs
committed
fix test
1 parent 0573b65 commit a1eda92

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

flink-table/flink-table-planner-blink/src/main/java/org/apache/flink/table/planner/functions/aggfunctions/Sum0AggFunction.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
import org.apache.flink.table.api.DataTypes;
2222
import org.apache.flink.table.expressions.Expression;
23+
import org.apache.flink.table.expressions.UnresolvedCallExpression;
2324
import org.apache.flink.table.expressions.UnresolvedReferenceExpression;
2425
import org.apache.flink.table.types.DataType;
2526
import org.apache.flink.table.types.logical.DecimalType;
@@ -28,11 +29,13 @@
2829
import java.math.BigDecimal;
2930

3031
import static org.apache.flink.table.expressions.ApiExpressionUtils.unresolvedRef;
32+
import static org.apache.flink.table.planner.expressions.ExpressionBuilder.cast;
3133
import static org.apache.flink.table.planner.expressions.ExpressionBuilder.ifThenElse;
3234
import static org.apache.flink.table.planner.expressions.ExpressionBuilder.isNull;
3335
import static org.apache.flink.table.planner.expressions.ExpressionBuilder.literal;
3436
import static org.apache.flink.table.planner.expressions.ExpressionBuilder.minus;
3537
import static org.apache.flink.table.planner.expressions.ExpressionBuilder.plus;
38+
import static org.apache.flink.table.planner.expressions.ExpressionBuilder.typeLiteral;
3639

3740
/** built-in sum0 aggregate function. */
3841
public abstract class Sum0AggFunction extends DeclarativeAggregateFunction {
@@ -56,20 +59,25 @@ public DataType[] getAggBufferTypes() {
5659
@Override
5760
public Expression[] accumulateExpressions() {
5861
return new Expression[] {
59-
/* sum0 = */ ifThenElse(isNull(operand(0)), sum0, plus(sum0, operand(0)))
62+
/* sum0 = */ adjustSumType(ifThenElse(isNull(operand(0)), sum0, plus(sum0, operand(0))))
6063
};
6164
}
6265

6366
@Override
6467
public Expression[] retractExpressions() {
6568
return new Expression[] {
66-
/* sum0 = */ ifThenElse(isNull(operand(0)), sum0, minus(sum0, operand(0)))
69+
/* sum0 = */ adjustSumType(
70+
ifThenElse(isNull(operand(0)), sum0, minus(sum0, operand(0))))
6771
};
6872
}
6973

7074
@Override
7175
public Expression[] mergeExpressions() {
72-
return new Expression[] {/* sum0 = */ plus(sum0, mergeOperand(sum0))};
76+
return new Expression[] {/* sum0 = */ adjustSumType(plus(sum0, mergeOperand(sum0)))};
77+
}
78+
79+
private UnresolvedCallExpression adjustSumType(UnresolvedCallExpression sumExpr) {
80+
return cast(sumExpr, typeLiteral(getResultType()));
7381
}
7482

7583
@Override

0 commit comments

Comments
 (0)