Re: Remove fls(), use pg_bitutils.h facilities instead?
Thomas Munro <thomas.munro@gmail.com>
From: Thomas Munro <thomas.munro@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>,
David Rowley <dgrowleyml@gmail.com>
Date: 2022-07-20T05:26:10Z
Lists: pgsql-hackers
Attachments
- v2-0001-Remove-fls-function.patch (text/x-patch) patch v2-0001
On Wed, Jul 20, 2022 at 4:52 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: > I think we could probably just drop fls() entirely. It doesn't look > to me like any of the existing callers expect a zero argument, so they > could be converted to use pg_leftmost_one_pos32() pretty trivially. > I don't see that fls() is buying us anything that is worth requiring > readers to know yet another nonstandard function. That was not true for the case in contiguous_pages_to_segment_bin(), in dsa.c. If it's just one place like that (and, hrrm, curiously there is an open issue about binning quality on my to do list...), then perhaps we should just open code it there. The attached doesn't trigger the assertion that work != 0 in a simple make check.
Commits
-
Remove fls(), use pg_leftmost_one_pos32() instead.
- 4f1f5a7f85ce 16.0 landed
-
Extend size_t support in pg_bitutils.h.
- 3225399021b6 16.0 landed
-
Support fls().
- 4f658dc851a7 9.2.0 cited