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.

109 lines
3.4KB

  1. /*-------------------------------------------------------------------------
  2. *
  3. * makefuncs.h
  4. * prototypes for the creator functions of various nodes
  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/nodes/makefuncs.h
  11. *
  12. *-------------------------------------------------------------------------
  13. */
  14. #ifndef MAKEFUNC_H
  15. #define MAKEFUNC_H
  16. #include "nodes/execnodes.h"
  17. #include "nodes/parsenodes.h"
  18. extern A_Expr *makeA_Expr(A_Expr_Kind kind, List *name,
  19. Node *lexpr, Node *rexpr, int location);
  20. extern A_Expr *makeSimpleA_Expr(A_Expr_Kind kind, char *name,
  21. Node *lexpr, Node *rexpr, int location);
  22. extern Var *makeVar(Index varno,
  23. AttrNumber varattno,
  24. Oid vartype,
  25. int32 vartypmod,
  26. Oid varcollid,
  27. Index varlevelsup);
  28. extern Var *makeVarFromTargetEntry(Index varno,
  29. TargetEntry *tle);
  30. extern Var *makeWholeRowVar(RangeTblEntry *rte,
  31. Index varno,
  32. Index varlevelsup,
  33. bool allowScalar);
  34. extern TargetEntry *makeTargetEntry(Expr *expr,
  35. AttrNumber resno,
  36. char *resname,
  37. bool resjunk);
  38. extern TargetEntry *flatCopyTargetEntry(TargetEntry *src_tle);
  39. extern FromExpr *makeFromExpr(List *fromlist, Node *quals);
  40. extern Const *makeConst(Oid consttype,
  41. int32 consttypmod,
  42. Oid constcollid,
  43. int constlen,
  44. Datum constvalue,
  45. bool constisnull,
  46. bool constbyval);
  47. extern Const *makeNullConst(Oid consttype, int32 consttypmod, Oid constcollid);
  48. extern Node *makeBoolConst(bool value, bool isnull);
  49. extern Expr *makeBoolExpr(BoolExprType boolop, List *args, int location);
  50. extern Alias *makeAlias(const char *aliasname, List *colnames);
  51. extern RelabelType *makeRelabelType(Expr *arg, Oid rtype, int32 rtypmod,
  52. Oid rcollid, CoercionForm rformat);
  53. extern RangeVar *makeRangeVar(char *schemaname, char *relname, int location);
  54. extern TypeName *makeTypeName(char *typnam);
  55. extern TypeName *makeTypeNameFromNameList(List *names);
  56. extern TypeName *makeTypeNameFromOid(Oid typeOid, int32 typmod);
  57. extern ColumnDef *makeColumnDef(const char *colname,
  58. Oid typeOid, int32 typmod, Oid collOid);
  59. extern FuncExpr *makeFuncExpr(Oid funcid, Oid rettype, List *args,
  60. Oid funccollid, Oid inputcollid, CoercionForm fformat);
  61. extern FuncCall *makeFuncCall(List *name, List *args, int location);
  62. extern Expr *make_opclause(Oid opno, Oid opresulttype, bool opretset,
  63. Expr *leftop, Expr *rightop,
  64. Oid opcollid, Oid inputcollid);
  65. extern Expr *make_andclause(List *andclauses);
  66. extern Expr *make_orclause(List *orclauses);
  67. extern Expr *make_notclause(Expr *notclause);
  68. extern Node *make_and_qual(Node *qual1, Node *qual2);
  69. extern Expr *make_ands_explicit(List *andclauses);
  70. extern List *make_ands_implicit(Expr *clause);
  71. extern IndexInfo *makeIndexInfo(int numattrs, int numkeyattrs, Oid amoid,
  72. List *expressions, List *predicates,
  73. bool unique, bool isready, bool concurrent);
  74. extern DefElem *makeDefElem(char *name, Node *arg, int location);
  75. extern DefElem *makeDefElemExtended(char *nameSpace, char *name, Node *arg,
  76. DefElemAction defaction, int location);
  77. extern GroupingSet *makeGroupingSet(GroupingSetKind kind, List *content, int location);
  78. extern VacuumRelation *makeVacuumRelation(RangeVar *relation, Oid oid, List *va_cols);
  79. #endif /* MAKEFUNC_H */
上海开阖软件有限公司 沪ICP备12045867号-1