diff --git a/src/backend/optimizer/prep/prepjointree.c b/src/backend/optimizer/prep/prepjointree.c
index 35e8d3c183b..4abd464999f 100644
--- a/src/backend/optimizer/prep/prepjointree.c
+++ b/src/backend/optimizer/prep/prepjointree.c
@@ -4196,8 +4196,8 @@ substitute_phv_relids_walker(Node *node,
 		if (phv->phlevelsup == context->sublevels_up &&
 			bms_is_member(context->varno, phv->phrels))
 		{
-			phv->phrels = bms_union(phv->phrels,
-									context->subrelids);
+			phv->phrels = bms_add_members(phv->phrels,
+										  context->subrelids);
 			phv->phrels = bms_del_member(phv->phrels,
 										 context->varno);
 			/* Assert we haven't broken the PHV */
diff --git a/src/backend/optimizer/prep/prepunion.c b/src/backend/optimizer/prep/prepunion.c
index 6bd0f4a5dc3..6c0e2383af9 100644
--- a/src/backend/optimizer/prep/prepunion.c
+++ b/src/backend/optimizer/prep/prepunion.c
@@ -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. */
diff --git a/src/backend/parser/parse_relation.c b/src/backend/parser/parse_relation.c
index 04ecf64b1fc..345e889bf10 100644
--- a/src/backend/parser/parse_relation.c
+++ b/src/backend/parser/parse_relation.c
@@ -1067,7 +1067,7 @@ markNullableIfNeeded(ParseState *pstate, Var *var)
 	 * be any, but let's get it right if there are.)
 	 */
 	if (relids != NULL)
-		var->varnullingrels = bms_union(var->varnullingrels, relids);
+		var->varnullingrels = bms_add_members(var->varnullingrels, relids);
 }
 
 /*
