[Bug](DECIMALV3) report failure if a decimal value is overflow (#18336)

This commit is contained in:
Gabriel
2023-04-17 13:18:14 +08:00
committed by GitHub
parent eb128753ac
commit 5300b21db7
40 changed files with 1283 additions and 21712 deletions

View File

@ -1092,15 +1092,17 @@ public class ScalarType extends Type {
}
public static ScalarType getAssignmentCompatibleDecimalV2Type(ScalarType t1, ScalarType t2) {
int targetPrecision = Math.max(t1.decimalPrecision(), t2.decimalPrecision());
int targetScale = Math.max(t1.decimalScale(), t2.decimalScale());
int targetPrecision = Math.max(t1.decimalPrecision() - t1.decimalScale(), t2.decimalPrecision()
- t2.decimalScale()) + targetScale;
return ScalarType.createDecimalType(PrimitiveType.DECIMALV2,
targetPrecision, targetScale);
}
public static ScalarType getAssignmentCompatibleDecimalV3Type(ScalarType t1, ScalarType t2) {
int targetPrecision = Math.max(t1.decimalPrecision(), t2.decimalPrecision());
int targetScale = Math.max(t1.decimalScale(), t2.decimalScale());
int targetPrecision = Math.max(t1.decimalPrecision() - t1.decimalScale(), t2.decimalPrecision()
- t2.decimalScale()) + targetScale;
return ScalarType.createDecimalV3Type(targetPrecision, targetScale);
}