Re: Marginal performance improvement: replace bms_first_member loops - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Marginal performance improvement: replace bms_first_member loops
Date
Msg-id 5102.1417202290@sss.pgh.pa.us
Whole thread Raw
In response to Re: Marginal performance improvement: replace bms_first_member loops  (David Rowley <dgrowleyml@gmail.com>)
Responses Re: Marginal performance improvement: replace bms_first_member loops
List pgsql-hackers
David Rowley <dgrowleyml@gmail.com> writes:
> A while back when I was benchmarking the planner time during my trials with
> anti/semi join removals, I wrote a patch to change the usage pattern for
> cases such as:

> if (bms_membership(a) != BMS_SINGLETON)
>   return; /* nothing to do */
> singleton = bms_singleton_member(a);
> ...

> Into:

> if (!bms_get_singleton(a, &singleton))
>   return; /* nothing to do */
> ...

> Which means 1 function call and loop over the bitmapset, rather than 2
> function
> calls and 2 loops over the set when the set is a singleton.

I went ahead and committed this with some cosmetic adjustments.
I'm not sure about there being any performance win in existing use-cases,
but it seems worth doing on notational grounds anyway.
        regards, tom lane



pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: no test programs in contrib
Next
From: Josh Berkus
Date:
Subject: Re: no test programs in contrib