1 /*------------------------------------------------------------------------- 2 * 3 * paramassign.h 4 * Functions for assigning PARAM_EXEC slots during planning. 5 * 6 * Portions Copyright (c) 1996-2020, 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