Use bms_add_members() instead of bms_union() when possible

David Rowley <drowley@postgresql.org>

Commit: 5092aae431e3e1a20324ea3a42a181c63f703d0d
Author: David Rowley <drowley@postgresql.org>
Date: 2025-10-03T23:19:31Z
Use bms_add_members() instead of bms_union() when possible

bms_union() causes a new set to be allocated.  What this caller needs is
members added to an existing set.  bms_add_members() is the tool for
that job.

This is just a matter of fixing an inefficiency due to surplus memory
allocations.  No bugs being fixed.

The only other place I found that might be valid to apply this change is
in markNullableIfNeeded(), but I opted not to do that due to the risk to
reward ratio not looking favorable.  The risk being that there *could* be
another pointer pointing to the Bitmapset.

Author: David Rowley <dgrowleyml@gmail.com>
Reviewed-by: Greg Burd <greg@burd.me>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/CAApHDvoCcoS-p5tZNJLTxFOKTYNjqVh7Dwf+5ikDUBwnvWftRw@mail.gmail.com

Files

PathChange+/−
src/backend/optimizer/prep/prepunion.c modified +1 −1

Discussion