1 | /*------------------------------------------------------------------------- |
2 | * |
3 | * paramassign.h |
4 | * Functions for assigning PARAM_EXEC slots during planning. |
5 | * |
6 | * Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group |
7 | * Portions Copyright (c) 1994, Regents of the University of California |
8 | * |
9 | * src/include/optimizer/paramassign.h |
10 | * |
11 | *------------------------------------------------------------------------- |
12 | */ |
13 | #ifndef PARAMASSIGN_H |
14 | #define PARAMASSIGN_H |
15 | |
16 | #include "nodes/pathnodes.h" |
17 | |
18 | extern Param *replace_outer_var(PlannerInfo *root, Var *var); |
19 | extern Param *replace_outer_placeholdervar(PlannerInfo *root, |
20 | PlaceHolderVar *phv); |
21 | extern Param *replace_outer_agg(PlannerInfo *root, Aggref *agg); |
22 | extern Param *replace_outer_grouping(PlannerInfo *root, GroupingFunc *grp); |
23 | extern Param *replace_nestloop_param_var(PlannerInfo *root, Var *var); |
24 | extern Param *replace_nestloop_param_placeholdervar(PlannerInfo *root, |
25 | PlaceHolderVar *phv); |
26 | extern void process_subquery_nestloop_params(PlannerInfo *root, |
27 | List *subplan_params); |
28 | extern List *identify_current_nestloop_params(PlannerInfo *root, |
29 | Relids leftrelids); |
30 | extern Param *generate_new_exec_param(PlannerInfo *root, Oid paramtype, |
31 | int32 paramtypmod, Oid paramcollation); |
32 | extern int assign_special_exec_param(PlannerInfo *root); |
33 | |
34 | #endif /* PARAMASSIGN_H */ |
35 | |