1 | /*------------------------------------------------------------------------- |
2 | * |
3 | * placeholder.h |
4 | * prototypes for optimizer/util/placeholder.c. |
5 | * |
6 | * |
7 | * Portions Copyright (c) 1996-2019, 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 | |