提交 74cf7764 编写于 作者: A Alex Duan

fix(query): avg function sum overflow

上级 a4e0bbd3
...@@ -377,7 +377,7 @@ static int32_t doAddNumericVector(SColumnInfoData* pCol, int32_t type, SInputCol ...@@ -377,7 +377,7 @@ static int32_t doAddNumericVector(SColumnInfoData* pCol, int32_t type, SInputCol
// check overflow for int // check overflow for int
if(pRes->sum.isum > 0 && plist[i] > 0 && INT64_MAX - pRes->sum.isum <= plist[i] || if(pRes->sum.isum > 0 && plist[i] > 0 && INT64_MAX - pRes->sum.isum <= plist[i] ||
pRes->sum.isum < 0 && plist[i] < 0 && INT64_MIN - pRes->sum.isum >= plist[i] ) { pRes->sum.isum < 0 && plist[i] < 0 && INT64_MIN - pRes->sum.isum >= plist[i] ) {
double dsum = (double) pAvgRes->sum.isum; double dsum = (double) pRes->sum.isum;
pRes->sum.overflow = true; pRes->sum.overflow = true;
pRes->sum.dsum = dsum + plist[i]; pRes->sum.dsum = dsum + plist[i];
} else { } else {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册