... 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?
regards, tom lane