Hi, On 2023-07-06 11:16:26 -0400, Tom Lane wrote: > Ranier Vilela <ranier...@gmail.com> writes: > > See the comments: > > "Search for the first empty element." > > If the empty element is not found, startelem has PG_UINT64_MAX value, > > which do not fit in uint32. > > I think the point of that assertion is exactly that we're required to > have an empty element (because max fillfactor is less than 1), > so the search should have succeeded.
Right, that part of the proposed change seems bogus to me. > It does seem like we could do > > uint64 startelem = SH_MAX_SIZE; > > ... > > Assert(startelem < SH_MAX_SIZE); > > which'd make it a little clearer that the expectation is for > startelem to have changed value. I guess? I find it easier to understand all-bits-set in a coredump as too-large than SH_MAX_SIZE, but ... > And I agree that declaring "i" as int is wrong. Yea, that's definitely not right, not sure how I ended up with that. Will push a fix. I guess it should be backpatched... Greetings, Andres Freund