fix error in judging overflow of unsigned integer multiplication

This commit is contained in:
obdev
2023-07-11 19:23:56 +00:00
committed by ob-robot
parent ddb3abbab6
commit 7e1fc2053a
2 changed files with 6 additions and 17 deletions

View File

@ -479,7 +479,8 @@ struct ObIntIntBatchMulRaw : public ObArithOpRawType<int64_t, int64_t, int64_t>
static int raw_check(const int64_t, const int64_t l, const int64_t r)
{
int ret = OB_SUCCESS;
if (OB_UNLIKELY(is_multi_overflow64(l, r))) {
long long res;
if (OB_UNLIKELY(ObExprMul::is_mul_out_of_range(l, r, res))) {
char expr_str[OB_MAX_TWO_OPERATOR_EXPR_LENGTH];
ret = OB_OPERATE_OVERFLOW;
int64_t pos = 0;