2
0

makefuncs.h 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. /*-------------------------------------------------------------------------
  2. *
  3. * makefuncs.h
  4. * prototypes for the creator functions of various nodes
  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/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(int varno,
  23. AttrNumber varattno,
  24. Oid vartype,
  25. int32 vartypmod,
  26. Oid varcollid,
  27. Index varlevelsup);
  28. extern Var *makeVarFromTargetEntry(int varno,
  29. TargetEntry *tle);
  30. extern Var *makeWholeRowVar(RangeTblEntry *rte,
  31. int 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,
  62. CoercionForm funcformat, int location);
  63. extern Expr *make_opclause(Oid opno, Oid opresulttype, bool opretset,
  64. Expr *leftop, Expr *rightop,
  65. Oid opcollid, Oid inputcollid);
  66. extern Expr *make_andclause(List *andclauses);
  67. extern Expr *make_orclause(List *orclauses);
  68. extern Expr *make_notclause(Expr *notclause);
  69. extern Node *make_and_qual(Node *qual1, Node *qual2);
  70. extern Expr *make_ands_explicit(List *andclauses);
  71. extern List *make_ands_implicit(Expr *clause);
  72. extern IndexInfo *makeIndexInfo(int numattrs, int numkeyattrs, Oid amoid,
  73. List *expressions, List *predicates,
  74. bool unique, bool nulls_not_distinct, bool isready, bool concurrent);
  75. extern DefElem *makeDefElem(char *name, Node *arg, int location);
  76. extern DefElem *makeDefElemExtended(char *nameSpace, char *name, Node *arg,
  77. DefElemAction defaction, int location);
  78. extern GroupingSet *makeGroupingSet(GroupingSetKind kind, List *content, int location);
  79. extern VacuumRelation *makeVacuumRelation(RangeVar *relation, Oid oid, List *va_cols);
  80. #endif /* MAKEFUNC_H */