[错误] 在溢出情况下, SUM() 对 DECIMAL 类型的值默认返回错误值,而 check_overflow_for_decimal 在二进制算术中对同一溢出则报错
作者: hanke580创建于 2026年9月17日更新于 2026年9月17日
两行 DECIMAL(38,0) 保存 10^38 - 1:
| 表达式 | 结果 |
|---|---|
a + a |
错误 — [E-255] 算术溢出: 99999999999999999999999999999999999999 add 99999... |
a * 2 |
错误 — [E-255] 算术溢出: ... 乘以 2 = 1999999... |
SUM(a) |
-14028236692093846346337460743176821145 — 没有错误 |
同样的溢出,在同样的两个值,在同样的查询中:在一个表达式中被拒绝,在另一个表达式中返回了一个错误的数值。
内容来源: apache/doris