21#define make_simple_restrictinfo(root, clause) \
22 make_restrictinfo(root, clause, true, false, false, false, 0, \
34 Relids incompatible_relids,
44 Relids incompatible_relids,
80 rinfo->outer_is_left =
true;
87 rinfo->outer_is_left =
false;
bool bms_is_subset(const Bitmapset *a, const Bitmapset *b)
static bool clause_sides_match_join(RestrictInfo *rinfo, Relids outerrelids, Relids innerrelids)
bool restriction_is_or_clause(RestrictInfo *restrictinfo)
List * extract_actual_clauses(List *restrictinfo_list, bool pseudoconstant)
void extract_actual_join_clauses(List *restrictinfo_list, Relids joinrelids, List **joinquals, List **otherquals)
bool restriction_is_securely_promotable(RestrictInfo *restrictinfo, RelOptInfo *rel)
RestrictInfo * make_plain_restrictinfo(PlannerInfo *root, Expr *clause, Expr *orclause, bool is_pushed_down, bool has_clone, bool is_clone, bool pseudoconstant, Index security_level, Relids required_relids, Relids incompatible_relids, Relids outer_relids)
List * get_actual_clauses(List *restrictinfo_list)
bool join_clause_is_movable_into(RestrictInfo *rinfo, Relids currentrelids, Relids current_and_outer)
bool join_clause_is_movable_to(RestrictInfo *rinfo, RelOptInfo *baserel)
RestrictInfo * make_restrictinfo(PlannerInfo *root, Expr *clause, bool is_pushed_down, bool has_clone, bool is_clone, bool pseudoconstant, Index security_level, Relids required_relids, Relids incompatible_relids, Relids outer_relids)
RestrictInfo * commute_restrictinfo(RestrictInfo *rinfo, Oid comm_op)