74 if (node->
opno != TIDEqualOperator)
83 if (arg1 &&
IsA(arg1,
Var))
88 var->
varno == varno &&
92 if (!other && arg2 &&
IsA(arg2,
Var))
97 var->
varno == varno &&
124 if (node->
opno != TIDEqualOperator)
133 if (arg1 &&
IsA(arg1,
Var))
139 var->
varno == varno &&
#define IsA(nodeptr, _type_)
void add_path(RelOptInfo *parent_rel, Path *new_path)
List * list_concat(List *list1, List *list2)
static List * TidQualFromBaseRestrictinfo(RelOptInfo *rel)
static List * TidQualFromExpr(Node *expr, int varno)
void create_tidscan_paths(PlannerInfo *root, RelOptInfo *rel)
static bool IsTidEqualClause(OpExpr *node, int varno)
#define is_opclause(clause)
bool and_clause(Node *clause)
static bool IsTidEqualAnyClause(ScalarArrayOpExpr *node, int varno)
bool is_pseudo_constant_clause(Node *clause)
bool or_clause(Node *clause)
#define Assert(condition)
bool restriction_is_securely_promotable(RestrictInfo *restrictinfo, RelOptInfo *rel)
Oid exprType(const Node *expr)
static int list_length(const List *l)
TidPath * create_tidscan_path(PlannerInfo *root, RelOptInfo *rel, List *tidquals, Relids required_outer)
void list_free(List *list)
#define SelfItemPointerAttributeNumber