placeholder.h 1.2 KB

1234567891011121314151617181920212223242526272829303132
  1. /*-------------------------------------------------------------------------
  2. *
  3. * placeholder.h
  4. * prototypes for optimizer/util/placeholder.c.
  5. *
  6. *
  7. * Portions Copyright (c) 1996-2022, 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. #include "nodes/pathnodes.h"
  17. extern PlaceHolderVar *make_placeholder_expr(PlannerInfo *root, Expr *expr,
  18. Relids phrels);
  19. extern PlaceHolderInfo *find_placeholder_info(PlannerInfo *root,
  20. PlaceHolderVar *phv, bool create_new_ph);
  21. extern void find_placeholders_in_jointree(PlannerInfo *root);
  22. extern void update_placeholder_eval_levels(PlannerInfo *root,
  23. SpecialJoinInfo *new_sjinfo);
  24. extern void fix_placeholder_input_needed_levels(PlannerInfo *root);
  25. extern void add_placeholders_to_base_rels(PlannerInfo *root);
  26. extern void add_placeholders_to_joinrel(PlannerInfo *root, RelOptInfo *joinrel,
  27. RelOptInfo *outer_rel, RelOptInfo *inner_rel);
  28. #endif /* PLACEHOLDER_H */