gooderp18绿色标准版
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

60 lines
1.9KB

  1. /*-------------------------------------------------------------------------
  2. *
  3. * planner.h
  4. * prototypes for planner.c.
  5. *
  6. * Note that the primary entry points for planner.c are declared in
  7. * optimizer/optimizer.h, because they're intended to be called from
  8. * non-planner code. Declarations here are meant for use by other
  9. * planner modules.
  10. *
  11. * Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group
  12. * Portions Copyright (c) 1994, Regents of the University of California
  13. *
  14. * src/include/optimizer/planner.h
  15. *
  16. *-------------------------------------------------------------------------
  17. */
  18. #ifndef PLANNER_H
  19. #define PLANNER_H
  20. #include "nodes/pathnodes.h"
  21. #include "nodes/plannodes.h"
  22. /* Hook for plugins to get control in planner() */
  23. typedef PlannedStmt *(*planner_hook_type) (Query *parse,
  24. int cursorOptions,
  25. ParamListInfo boundParams);
  26. extern PGDLLIMPORT planner_hook_type planner_hook;
  27. /* Hook for plugins to get control when grouping_planner() plans upper rels */
  28. typedef void (*create_upper_paths_hook_type) (PlannerInfo *root,
  29. UpperRelationKind stage,
  30. RelOptInfo *input_rel,
  31. RelOptInfo *output_rel,
  32. void *extra);
  33. extern PGDLLIMPORT create_upper_paths_hook_type create_upper_paths_hook;
  34. extern PlannedStmt *standard_planner(Query *parse, int cursorOptions,
  35. ParamListInfo boundParams);
  36. extern PlannerInfo *subquery_planner(PlannerGlobal *glob, Query *parse,
  37. PlannerInfo *parent_root,
  38. bool hasRecursion, double tuple_fraction);
  39. extern RowMarkType select_rowmark_type(RangeTblEntry *rte,
  40. LockClauseStrength strength);
  41. extern bool limit_needed(Query *parse);
  42. extern void mark_partial_aggref(Aggref *agg, AggSplit aggsplit);
  43. extern Path *get_cheapest_fractional_path(RelOptInfo *rel,
  44. double tuple_fraction);
  45. extern Expr *preprocess_phv_expression(PlannerInfo *root, Expr *expr);
  46. #endif /* PLANNER_H */
上海开阖软件有限公司 沪ICP备12045867号-1