sje_joininfo_fix.patch

application/octet-stream

Filename: sje_joininfo_fix.patch
Type: application/octet-stream
Part: 0
Message: Re: BUG #19435: Error: "No relation entry for relid 2" Triggered by Complex Join with Self-Referencing Tables

Patch

Format: unified
File+
src/backend/optimizer/plan/analyzejoins.c 6 0
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);