diff --git a/src/backend/optimizer/plan/analyzejoins.c b/src/backend/optimizer/plan/analyzejoins.c index 12e9ed0d0c7..68bfb76a5b0 100644 --- a/src/backend/optimizer/plan/analyzejoins.c +++ b/src/backend/optimizer/plan/analyzejoins.c @@ -1957,6 +1957,12 @@ remove_self_join_rel(PlannerInfo *root, PlanRowMark *kmark, PlanRowMark *rmark, ChangeVarNodesExtended((Node *) root->parse, toRemove->relid, toKeep->relid, 0, replace_relid_callback); + foreach_node(RestrictInfo, rinfo, toKeep->joininfo) + { + ChangeVarNodesExtended((Node *) rinfo->clause, toRemove->relid, + toKeep->relid, 0, replace_relid_callback); + } + /* Replace links in the planner info */ remove_rel_from_query(root, toRemove, toKeep->relid, NULL, NULL);