Assert(!RINFO_IS_PUSHED_DOWN(rinfo, joinrel->relids));
if (!bms_is_subset(rinfo->required_relids, both_input_relids))
continue;
- if (!clause_is_computable_at(root, rinfo->clause_relids,
- both_input_relids))
+ if (!clause_is_computable_at(root, rinfo, both_input_relids))
continue;
}
else
*/
#ifdef USE_ASSERT_CHECKING
if (RINFO_IS_PUSHED_DOWN(rinfo, joinrel->relids))
- Assert(clause_is_computable_at(root, rinfo->clause_relids,
+ Assert(clause_is_computable_at(root, rinfo,
joinrel->relids));
else
{
Assert(bms_is_subset(rinfo->required_relids,
both_input_relids));
- Assert(clause_is_computable_at(root, rinfo->clause_relids,
+ Assert(clause_is_computable_at(root, rinfo,
both_input_relids));
}
#endif
*/
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. */
List **joinquals,
List **otherquals);
extern bool clause_is_computable_at(PlannerInfo *root,
- Relids clause_relids,
+ RestrictInfo *rinfo,
Relids eval_relids);
extern bool join_clause_is_movable_to(RestrictInfo *rinfo, RelOptInfo *baserel);
extern bool join_clause_is_movable_into(RestrictInfo *rinfo,