Re: BUG #18247: Integer overflow leads to negative width
Julien Rouhaud <rjuju123@gmail.com>
From: Julien Rouhaud <rjuju123@gmail.com>
To: Richard Guo <guofenglinux@gmail.com>
Cc: rekgrpth@gmail.com, pgsql-bugs@lists.postgresql.org
Date: 2023-12-14T10:57:40Z
Lists: pgsql-bugs
On Thu, Dec 14, 2023 at 06:34:44PM +0800, Richard Guo wrote: > On Thu, Dec 14, 2023 at 5:29 PM PG Bug reporting form < > noreply@postgresql.org> wrote: > > > EXPLAIN SELECT * FROM t; > > QUERY PLAN > > ------------------------------------------------------------ > > Seq Scan on t (cost=0.00..10.00 rows=1 width=-2113929008) > > (1 row) > > > Interesting. In an Assert-enabled build this query will cause the > Assert failure in set_rel_width(). > > Assert(tuple_width >= 0); > > Can we just error out when an overflow occurs? I'm worried that it could have quite a broad impact, as the same problem could easily arise in some more conventional cases, e.g. after joining some already large relations. I'm sure that some people already hit that in production without looking at explain plans, and wouldn't be happy to see it broken during the next update.
Commits
-
Prevent integer overflow when forming tuple width estimates.
- 7e1ce2b3de16 17.0 landed
-
compute_bitmap_pages' loop_count parameter should be double not int.
- 8b965c549dc8 17.0 landed