1 /*------------------------------------------------------------------------- 2 * 3 * placeholder.h 4 * prototypes for optimizer/util/placeholder.c. 5 * 6 * 7 * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group 8 * Portions Copyright (c) 1994, Regents of the University of California 9 * 10 * src/include/optimizer/placeholder.h 11 * 12 *------------------------------------------------------------------------- 13 */ 14 #ifndef PLACEHOLDER_H 15 #define PLACEHOLDER_H 16 17 #include "nodes/pathnodes.h" 18 19 20 extern PlaceHolderVar *make_placeholder_expr(PlannerInfo *root, Expr *expr, 21 Relids phrels); 22 extern PlaceHolderInfo *find_placeholder_info(PlannerInfo *root, 23 PlaceHolderVar *phv, bool create_new_ph); 24 extern void find_placeholders_in_jointree(PlannerInfo *root); 25 extern void update_placeholder_eval_levels(PlannerInfo *root, 26 SpecialJoinInfo *new_sjinfo); 27 extern void fix_placeholder_input_needed_levels(PlannerInfo *root); 28 extern void add_placeholders_to_base_rels(PlannerInfo *root); 29 extern void add_placeholders_to_joinrel(PlannerInfo *root, RelOptInfo *joinrel, 30 RelOptInfo *outer_rel, RelOptInfo *inner_rel); 31 32 #endif /* PLACEHOLDER_H */ 33