diff options
author | Alexander Korotkov <akorotkov@postgresql.org> | 2023-11-09 14:06:11 +0200 |
---|---|---|
committer | Alexander Korotkov <akorotkov@postgresql.org> | 2023-11-09 14:25:13 +0200 |
commit | b44a1708abe306831073cf88bb0ba6a11e68daee (patch) | |
tree | 011dbc9084fd0a5825ba166614a8eecbbe3cede5 /src/backend/optimizer/plan/analyzejoins.c | |
parent | 3850d4dec1d91c4fdce274f42986840444d5593e (diff) | |
download | postgresql-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.c | 4 |
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 */ } } |