2
0

paramassign.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334
  1. /*-------------------------------------------------------------------------
  2. *
  3. * paramassign.h
  4. * Functions for assigning PARAM_EXEC slots during planning.
  5. *
  6. * Portions Copyright (c) 1996-2022, 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. #include "nodes/pathnodes.h"
  16. extern Param *replace_outer_var(PlannerInfo *root, Var *var);
  17. extern Param *replace_outer_placeholdervar(PlannerInfo *root,
  18. PlaceHolderVar *phv);
  19. extern Param *replace_outer_agg(PlannerInfo *root, Aggref *agg);
  20. extern Param *replace_outer_grouping(PlannerInfo *root, GroupingFunc *grp);
  21. extern Param *replace_nestloop_param_var(PlannerInfo *root, Var *var);
  22. extern Param *replace_nestloop_param_placeholdervar(PlannerInfo *root,
  23. PlaceHolderVar *phv);
  24. extern void process_subquery_nestloop_params(PlannerInfo *root,
  25. List *subplan_params);
  26. extern List *identify_current_nestloop_params(PlannerInfo *root,
  27. Relids leftrelids);
  28. extern Param *generate_new_exec_param(PlannerInfo *root, Oid paramtype,
  29. int32 paramtypmod, Oid paramcollation);
  30. extern int assign_special_exec_param(PlannerInfo *root);
  31. #endif /* PARAMASSIGN_H */