fix_bms_union_misusages.patch
application/octet-stream
Filename: fix_bms_union_misusages.patch
Type: application/octet-stream
Part: 0
Patch
Format: unified
| File | + | − |
|---|---|---|
| src/backend/optimizer/prep/prepjointree.c | 2 | 2 |
| src/backend/optimizer/prep/prepunion.c | 1 | 1 |
| src/backend/parser/parse_relation.c | 1 | 1 |
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);
}
/*