Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Korotkov2023-11-09 12:06:11 +0000
committerAlexander Korotkov2023-11-09 12:25:13 +0000
commitb44a1708abe306831073cf88bb0ba6a11e68daee (patch)
tree011dbc9084fd0a5825ba166614a8eecbbe3cede5 /src/backend
parent3850d4dec1d91c4fdce274f42986840444d5593e (diff)
Fix the way SJE removes references from PHVs
Add missing replacement of relids in phv->phexpr. Also, remove extra replace_relid() over phv->phrels. Reported-by: Zuming Jiang Bug: #18187 Discussion: https://postgr.es/m/flat/18187-831da249cbd2ff8e%40postgresql.org Author: Richard Guo Reviewed-by: Andrei Lepikhov
Diffstat (limited to 'src/backend')
-rw-r--r--src/backend/optimizer/plan/analyzejoins.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/backend/optimizer/plan/analyzejoins.c b/src/backend/optimizer/plan/analyzejoins.c
index 953e381d6f9..271f694d996 100644
--- a/src/backend/optimizer/plan/analyzejoins.c
+++ b/src/backend/optimizer/plan/analyzejoins.c
@@ -474,9 +474,9 @@ remove_rel_from_query(PlannerInfo *root, RelOptInfo *rel,
/* ph_needed might or might not become empty */
phv->phrels = replace_relid(phv->phrels, relid, subst);
phv->phrels = replace_relid(phv->phrels, ojrelid, subst);
- phinfo->ph_lateral = replace_relid(phinfo->ph_lateral, relid, subst);
- phinfo->ph_var->phrels = replace_relid(phinfo->ph_var->phrels, relid, subst);
Assert(!bms_is_empty(phv->phrels));
+ replace_varno((Node *) phv->phexpr, relid, subst);
+ phinfo->ph_lateral = replace_relid(phinfo->ph_lateral, relid, subst);
Assert(phv->phnullingrels == NULL); /* no need to adjust */
}
}