[bug](decimal) change result type for decimalv2 computation (#22366)

This commit is contained in:
Gabriel
2023-07-31 10:00:34 +08:00
committed by GitHub
parent 2b9a95f74f
commit ec0be8a037

View File

@ -30,6 +30,7 @@ import org.apache.doris.catalog.Type;
import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.Config;
import org.apache.doris.common.io.Text;
import org.apache.doris.qe.ConnectContext;
import org.apache.doris.thrift.TExprNode;
import org.apache.doris.thrift.TExprNodeType;
import org.apache.doris.thrift.TExprOpcode;
@ -312,6 +313,8 @@ public class ArithmeticExpr extends Expr {
return Type.DOUBLE;
} else if (pt1 == PrimitiveType.DECIMALV2 || pt2 == PrimitiveType.DECIMALV2) {
return pt1 == PrimitiveType.DECIMALV2 && pt2 == PrimitiveType.DECIMALV2
|| (ConnectContext.get() != null
&& ConnectContext.get().getSessionVariable().roundPreciseDecimalV2Value)
? Type.MAX_DECIMALV2_TYPE : Type.DOUBLE;
} else if (pt1 == PrimitiveType.DECIMAL32 || pt2 == PrimitiveType.DECIMAL32) {
return pt1 == PrimitiveType.DECIMAL32 && pt2 == PrimitiveType.DECIMAL32 ? Type.DECIMAL32 : Type.DOUBLE;