[opt](Nereids) add float type signature for sum aggregate function (#29503)

* [opt](Nereids) add float type signature for sum aggregate function
This commit is contained in:
zhangstar333
2024-01-05 18:06:16 +08:00
committed by GitHub
parent e2e9b9d8a3
commit 132ff6c6de
3 changed files with 12 additions and 1 deletions

View File

@ -67,6 +67,11 @@ public class MultiDistinctSum extends NullableAggregateFunction implements Unary
return new Sum(getArgument(0)).getSignatures();
}
@Override
public FunctionSignature searchSignature(List<FunctionSignature> signatures) {
return new Sum(getArgument(0)).searchSignature(signatures);
}
@Override
public NullableAggregateFunction withAlwaysNullable(boolean alwaysNullable) {
return new MultiDistinctSum(distinct, alwaysNullable, children.get(0));

View File

@ -114,7 +114,7 @@ public class Sum extends NullableAggregateFunction
@Override
public FunctionSignature searchSignature(List<FunctionSignature> signatures) {
if (getArgument(0).getDataType() instanceof FloatType) {
return FunctionSignature.ret(DoubleType.INSTANCE).args(DoubleType.INSTANCE);
return FunctionSignature.ret(DoubleType.INSTANCE).args(FloatType.INSTANCE);
}
return ExplicitlyCastableSignature.super.searchSignature(signatures);
}