aboutsummaryrefslogtreecommitdiff
path: root/src/backend/optimizer/plan/analyzejoins.c
diff options
context:
space:
mode:
authorAlexander Korotkov <akorotkov@postgresql.org>2023-11-09 14:06:11 +0200
committerAlexander Korotkov <akorotkov@postgresql.org>2023-11-09 14:25:13 +0200
commitb44a1708abe306831073cf88bb0ba6a11e68daee (patch)
tree011dbc9084fd0a5825ba166614a8eecbbe3cede5 /src/backend/optimizer/plan/analyzejoins.c
parent3850d4dec1d91c4fdce274f42986840444d5593e (diff)
downloadpostgresql-b44a1708abe306831073cf88bb0ba6a11e68daee.tar.gz
postgresql-b44a1708abe306831073cf88bb0ba6a11e68daee.zip
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/optimizer/plan/analyzejoins.c')
-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 */
}
}