On Thu, May 18, 2023 at 3:42 AM Tom Lane <t...@sss.pgh.pa.us> wrote:
> ... BTW, something I'd considered in an earlier attempt at fixing this > was to change clause_is_computable_at's API to pass the clause's > RestrictInfo not just the clause_relids, along the lines of > > @@ -541,9 +547,10 @@ extract_actual_join_clauses(List *restrictinfo_list, > */ > bool > clause_is_computable_at(PlannerInfo *root, > - Relids clause_relids, > + RestrictInfo *rinfo, > Relids eval_relids) > { > + Relids clause_relids = rinfo->clause_relids; > ListCell *lc; > > /* Nothing to do if no outer joins have been performed yet. */ > > with corresponding simplifications at the call sites. That was with > a view to examining has_clone/is_clone inside this function. My > current proposal doesn't require that, but I'm somewhat tempted > to make this API change anyway for future-proofing purposes. > Thoughts? This change looks good to me. Thanks Richard