> 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/