Re: Negative value of numGroups
Andrei Lepikhov <a.lepikhov@postgrespro.ru>
From: Andrey Lepikhov <a.lepikhov@postgrespro.ru>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-bugs@lists.postgresql.org
Date: 2022-05-19T09:03:55Z
Lists: pgsql-bugs
Attachments
- 0001-Fix-potential-problem-with-negative-value-of-groups-.patch (text/x-patch) patch 0001
On 5/17/22 20:34, Tom Lane wrote: > Andrey Lepikhov <a.lepikhov@postgrespro.ru> writes: >> On 13/5/2022 11:56, Andrey Lepikhov wrote: >>> (long) Min(numGroups, (double) LONG_MAX); >>> >>> can return negative value, if numGroups > LONG_MAX. > > I see your point, but I don't think that repeating the same finicky > and undocumented coding pattern in multiple places is a future-proof > fix. I'm inclined to think we should invent a function along the > lines of "long clamp_double_to_long(double x)". Given where it's > used, maybe putting it beside clamp_row_est() would be good. > > regards, tom lane Next version of the patch. As I see, now we trying to use Cardinality type instead of double. So, I named casting routine as clamp_cardinality_to_long. -- Regards Andrey Lepikhov Postgres Professional
Commits
-
Avoid overflow hazard when clamping group counts to "long int".
- a916cb9d5a89 15.0 landed