88 elog(
ERROR,
"too late to create a new PlaceHolderInfo");
203 elog(
ERROR,
"unrecognized node type: %d",
325 }
while (found_some);
void cost_qual_eval_node(QualCost *cost, Node *qual, PlannerInfo *root)
#define IsA(nodeptr, _type_)
Bitmapset * bms_copy(const Bitmapset *a)
int32 exprTypmod(const Node *expr)
Bitmapset * bms_difference(const Bitmapset *a, const Bitmapset *b)
bool bms_get_singleton_member(const Bitmapset *a, int *member)
List * pull_var_clause(Node *node, int flags)
void add_placeholders_to_joinrel(PlannerInfo *root, RelOptInfo *joinrel, RelOptInfo *outer_rel, RelOptInfo *inner_rel)
void add_placeholders_to_base_rels(PlannerInfo *root)
void add_vars_to_targetlist(PlannerInfo *root, List *vars, Relids where_needed, bool create_new_ph)
PlaceHolderVar * make_placeholder_expr(PlannerInfo *root, Expr *expr, Relids phrels)
bool bms_is_subset(const Bitmapset *a, const Bitmapset *b)
PlaceHolderInfo * find_placeholder_info(PlannerInfo *root, PlaceHolderVar *phv, bool create_new_ph)
Relids pull_varnos(Node *node)
List * lappend(List *list, void *datum)
void fix_placeholder_input_needed_levels(PlannerInfo *root)
bool bms_is_empty(const Bitmapset *a)
void find_placeholders_in_jointree(PlannerInfo *root)
#define PVC_INCLUDE_PLACEHOLDERS
Relids direct_lateral_relids
int32 get_typavgwidth(Oid typid, int32 typmod)
static void find_placeholders_recurse(PlannerInfo *root, Node *jtnode)
#define Assert(condition)
Oid exprType(const Node *expr)
void update_placeholder_eval_levels(PlannerInfo *root, SpecialJoinInfo *new_sjinfo)
bool bms_overlap(const Bitmapset *a, const Bitmapset *b)
#define PVC_RECURSE_WINDOWFUNCS
void list_free(List *list)
static void find_placeholders_in_expr(PlannerInfo *root, Node *expr)
RelOptInfo * find_base_rel(PlannerInfo *root, int relid)
Bitmapset * bms_int_members(Bitmapset *a, const Bitmapset *b)
struct PathTarget * reltarget
#define PVC_RECURSE_AGGREGATES
Bitmapset * bms_add_members(Bitmapset *a, const Bitmapset *b)
bool bms_nonempty_difference(const Bitmapset *a, const Bitmapset *b)