> On Sep 1, 2026, at 16:22, Andrei Lepikhov <[email protected]> wrote:
> 
> On 01/09/2026 09:35, Chao Li wrote:
>> If newval is negative, the minus operation may also overflow.
> I don't think that's the case. An inverted function removes values that were
> already included in the aggregate, which usually brings the total closer to 
> zero
> instead of pushing it toward the boundary. From what I see, this means there's
> no risk of integer overflow.
> 
> -- 
> regards, Andrei Lepikhov,
> pgEdge

I agree that this may not happen during normal aggregate execution, but 
int2_avg_accum_inv() is also directly callable as a SQL function. For example:
```
evantest=# select int2_avg_accum_inv('{1,9223372036854775807}'::int8[], 
-1::int2);
    int2_avg_accum_inv
--------------------------
 {0,-9223372036854775808}
(1 row)
```

It’s showing an overflow for a caller-supplied state. I wouldn’t submit a 
dedicated patch for this case, but I just thought that, since this patch adds 
overflow checks to the neighboring transition functions, perhaps it would be 
worth handling this one at the same time. But, anyway, that’s not a strong 
comment, it’s up to you.

Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/






Reply via email to