Re: Remove fls(), use pg_bitutils.h facilities instead? - Mailing list pgsql-hackers

From Thomas Munro
Subject Re: Remove fls(), use pg_bitutils.h facilities instead?
Date
Msg-id CA+hUKGJ8YWFH7xmFwN+deGpcMBKAxXLjLUYisE6E_NwYtpq8VA@mail.gmail.com
Whole thread Raw
In response to Re: Remove fls(), use pg_bitutils.h facilities instead?  (Thomas Munro <thomas.munro@gmail.com>)
Responses Re: Remove fls(), use pg_bitutils.h facilities instead?
List pgsql-hackers
On Wed, Jul 20, 2022 at 5:26 PM Thomas Munro <thomas.munro@gmail.com> wrote:
> 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.

That double eval macro wasn't nice.  This time with a static inline function.

Attachment

pgsql-hackers by date:

Previous
From: Bharath Rupireddy
Date:
Subject: Re: Expose last replayed timeline ID along with last replayed LSN
Next
From: Junwang Zhao
Date:
Subject: Re: Memory leak fix in psql