mirror of
https://github.com/postgres/postgres.git
synced 2025-09-09 13:09:39 +03:00
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
This commit is contained in:
@@ -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 */
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user