Re: BUG #18247: Integer overflow leads to negative width
Richard Guo <guofenglinux@gmail.com>
From: Richard Guo <guofenglinux@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Junwang Zhao <zhjwpku@gmail.com>, rekgrpth@gmail.com,
pgsql-bugs@lists.postgresql.org
Date: 2023-12-19T03:32:29Z
Lists: pgsql-bugs
On Tue, Dec 19, 2023 at 5:00 AM Tom Lane <tgl@sss.pgh.pa.us> wrote: > Some review comments: > > * clamp_width_est doesn't need to check isinf, since the > comparison will work just fine. It does need to check isnan, > unless we switch to int64. > > * We can fold the Assert about width >= 0 into clamp_width_est > too; it fits naturally there and saves code in the callers. > > * I did not like changing the output type of get_rel_data_width; > it seems better to me to have it do clamp_width_est internally. > For one reason, several of the call sites are relying on > doing integer division, which the v2 patch might break. > > The attached v3 fixes those things and makes some cosmetic > changes (mostly comments). I agree with all the comments made. I have also examined other places where the width field is assigned, and I think we've covered all cases. So the v3 patch is in good shape to me. Thanks Richard
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