[fix](nereids) fix wrong result precision for add/sub (#25751)

This commit is contained in:
TengJianPing
2023-10-26 21:28:34 +08:00
committed by GitHub
parent 9faa6e083b
commit 1e39636fbf
3 changed files with 8 additions and 4 deletions

View File

@ -49,7 +49,9 @@ public class Add extends BinaryArithmetic implements CheckOverflowNullable {
@Override
public DecimalV3Type getDataTypeForDecimalV3(DecimalV3Type t1, DecimalV3Type t2) {
return (DecimalV3Type) DecimalV3Type.widerDecimalV3Type(t1, t2, false);
DecimalV3Type decimalV3Type = (DecimalV3Type) DecimalV3Type.widerDecimalV3Type(t1, t2, false);
return (DecimalV3Type) DecimalV3Type.createDecimalV3Type(decimalV3Type.getPrecision() + 1,
decimalV3Type.getScale());
}
@Override

View File

@ -49,7 +49,9 @@ public class Subtract extends BinaryArithmetic implements CheckOverflowNullable
@Override
public DecimalV3Type getDataTypeForDecimalV3(DecimalV3Type t1, DecimalV3Type t2) {
return (DecimalV3Type) DecimalV3Type.widerDecimalV3Type(t1, t2, false);
DecimalV3Type decimalV3Type = (DecimalV3Type) DecimalV3Type.widerDecimalV3Type(t1, t2, false);
return (DecimalV3Type) DecimalV3Type.createDecimalV3Type(decimalV3Type.getPrecision() + 1,
decimalV3Type.getScale());
}
@Override