mirror of
https://github.com/postgres/postgres.git
synced 2025-10-15 05:46:52 +03:00
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
This commit is contained in:
@@ -802,7 +802,7 @@ generate_union_paths(SetOperationStmt *op, PlannerInfo *root,
|
||||
linitial(rel->partial_pathlist));
|
||||
}
|
||||
|
||||
relids = bms_union(relids, rel->relids);
|
||||
relids = bms_add_members(relids, rel->relids);
|
||||
}
|
||||
|
||||
/* Build result relation. */
|
||||
|
Reference in New Issue
Block a user