gooderp18绿色标准版
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 line
1.8KB

  1. /*-------------------------------------------------------------------------
  2. *
  3. * clauses.h
  4. * prototypes for clauses.c.
  5. *
  6. *
  7. * Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group
  8. * Portions Copyright (c) 1994, Regents of the University of California
  9. *
  10. * src/include/optimizer/clauses.h
  11. *
  12. *-------------------------------------------------------------------------
  13. */
  14. #ifndef CLAUSES_H
  15. #define CLAUSES_H
  16. #include "access/htup.h"
  17. #include "nodes/pathnodes.h"
  18. typedef struct
  19. {
  20. int numWindowFuncs; /* total number of WindowFuncs found */
  21. Index maxWinRef; /* windowFuncs[] is indexed 0 .. maxWinRef */
  22. List **windowFuncs; /* lists of WindowFuncs for each winref */
  23. } WindowFuncLists;
  24. extern bool contain_agg_clause(Node *clause);
  25. extern void get_agg_clause_costs(PlannerInfo *root, Node *clause,
  26. AggSplit aggsplit, AggClauseCosts *costs);
  27. extern bool contain_window_function(Node *clause);
  28. extern WindowFuncLists *find_window_functions(Node *clause, Index maxWinRef);
  29. extern double expression_returns_set_rows(PlannerInfo *root, Node *clause);
  30. extern bool contain_subplans(Node *clause);
  31. extern char max_parallel_hazard(Query *parse);
  32. extern bool is_parallel_safe(PlannerInfo *root, Node *node);
  33. extern bool contain_nonstrict_functions(Node *clause);
  34. extern bool contain_leaked_vars(Node *clause);
  35. extern Relids find_nonnullable_rels(Node *clause);
  36. extern List *find_nonnullable_vars(Node *clause);
  37. extern List *find_forced_null_vars(Node *clause);
  38. extern Var *find_forced_null_var(Node *clause);
  39. extern bool is_pseudo_constant_clause(Node *clause);
  40. extern bool is_pseudo_constant_clause_relids(Node *clause, Relids relids);
  41. extern int NumRelids(Node *clause);
  42. extern void CommuteOpExpr(OpExpr *clause);
  43. extern Query *inline_set_returning_function(PlannerInfo *root,
  44. RangeTblEntry *rte);
  45. #endif /* CLAUSES_H */
上海开阖软件有限公司 沪ICP备12045867号-1