Re: Making empty Bitmapsets always be NULL
Nathan Bossart <nathandbossart@gmail.com>
From: Nathan Bossart <nathandbossart@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2023-03-02T00:22:19Z
Lists: pgsql-hackers
On Wed, Mar 01, 2023 at 05:59:45PM -0500, Tom Lane wrote: > bms_first_member is definitely legacy code, so let's just get > rid of it. Done like that in 0001 below. (This was slightly more > complex than I foresaw, because some of the callers were modifying > the result variables. But they're probably cleaner this way anyway.) Yeah, it's nice that you don't have to subtract FirstLowInvalidHeapAttributeNumber in so many places. I think future changes might end up using attidx when they ought to use attrnum (and vice versa), but you could just as easily forget to subtract FirstLowInvalidHeapAttributeNumber today, so it's probably fine. > + /* attidx is zero-based, attrnum is the normal attribute number */ > + int attrnum = attidx + FirstLowInvalidHeapAttributeNumber; nitpick: Shouldn't this be an AttrNumber? > Yeah. I split out those executor fixes as 0002; 0003 is the changes > to bitmapsets proper, and then 0004 removes now-dead code. These all looked reasonable to me. -- Nathan Bossart Amazon Web Services: https://aws.amazon.com
Commits
-
Remove trailing zero words from Bitmapsets
- a8c09daa8bb1 17.0 landed
-
Remove local optimizations of empty Bitmapsets into null pointers.
- 6b661b01f48b 16.0 landed
-
Require empty Bitmapsets to be represented as NULL.
- 00b41463c216 16.0 landed
-
Mop up some undue familiarity with the innards of Bitmapsets.
- 141225b2518f 16.0 landed
-
Remove bms_first_member().
- 462bb7f12851 16.0 landed