fix-SJE-after-revert-a3179ab69.patch
application/octet-stream
Filename: fix-SJE-after-revert-a3179ab69.patch
Type: application/octet-stream
Part: 0
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: unified
| File | + | − |
|---|---|---|
| src/backend/optimizer/plan/analyzejoins.c | 7 | 2 |
diff --git a/src/backend/optimizer/plan/analyzejoins.c b/src/backend/optimizer/plan/analyzejoins.c
index 11ce7e33573..cd8a1ee26a9 100644
--- a/src/backend/optimizer/plan/analyzejoins.c
+++ b/src/backend/optimizer/plan/analyzejoins.c
@@ -344,7 +344,8 @@ remove_rel_from_query(PlannerInfo *root, RelOptInfo *rel,
}
/*
- * Remove references to the rel from other baserels' attr_needed arrays.
+ * Remove references to the rel from other baserels' attr_needed arrays and
+ * lateral_vars lists.
*/
for (rti = 1; rti < root->simple_rel_array_size; rti++)
{
@@ -366,12 +367,16 @@ remove_rel_from_query(PlannerInfo *root, RelOptInfo *rel,
attroff--)
{
otherrel->attr_needed[attroff] =
- bms_del_member(otherrel->attr_needed[attroff], relid);
+ adjust_relid_set(otherrel->attr_needed[attroff], relid, subst);
if (sjinfo != NULL)
otherrel->attr_needed[attroff] =
bms_del_member(otherrel->attr_needed[attroff],
sjinfo->ojrelid);
}
+
+ if (subst > 0)
+ ChangeVarNodesExtended((Node *) otherrel->lateral_vars, relid,
+ subst, 0, replace_relid_callback);
}
/*