minimal_fix.patch
application/octet-stream
Filename: minimal_fix.patch
Type: application/octet-stream
Part: 0
Patch
Format: unified
| File | + | − |
|---|---|---|
| src/backend/optimizer/prep/prepunion.c | 6 | 2 |
diff --git a/src/backend/optimizer/prep/prepunion.c b/src/backend/optimizer/prep/prepunion.c index 55665824179..e622c022272 100644 --- a/src/backend/optimizer/prep/prepunion.c +++ b/src/backend/optimizer/prep/prepunion.c @@ -773,6 +773,12 @@ generate_union_paths(SetOperationStmt *op, PlannerInfo *root, RelOptInfo *rel = lfirst(lc); Path *ordered_path; + /* + * Record the relids so that we correctly identify the correct + * UPPERREL_SETOP below. + */ + relids = bms_add_members(relids, rel->relids); + /* Skip any UNION children that are proven not to yield any rows */ if (is_dummy_rel(rel)) continue; @@ -815,8 +821,6 @@ generate_union_paths(SetOperationStmt *op, PlannerInfo *root, partial_pathlist = lappend(partial_pathlist, linitial(rel->partial_pathlist)); } - - relids = bms_add_members(relids, rel->relids); } /* Build result relation. */