makefuncs.h 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. /*-------------------------------------------------------------------------
  2. *
  3. * makefuncs.h
  4. * prototypes for the creator functions (for primitive nodes)
  5. *
  6. *
  7. * Portions Copyright (c) 1996-2016, 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/parsenodes.h"
  17. extern A_Expr *makeA_Expr(A_Expr_Kind kind, List *name,
  18. Node *lexpr, Node *rexpr, int location);
  19. extern A_Expr *makeSimpleA_Expr(A_Expr_Kind kind, char *name,
  20. Node *lexpr, Node *rexpr, int location);
  21. extern Var *makeVar(Index varno,
  22. AttrNumber varattno,
  23. Oid vartype,
  24. int32 vartypmod,
  25. Oid varcollid,
  26. Index varlevelsup);
  27. extern Var *makeVarFromTargetEntry(Index varno,
  28. TargetEntry *tle);
  29. extern Var *makeWholeRowVar(RangeTblEntry *rte,
  30. Index varno,
  31. Index varlevelsup,
  32. bool allowScalar);
  33. extern TargetEntry *makeTargetEntry(Expr *expr,
  34. AttrNumber resno,
  35. char *resname,
  36. bool resjunk);
  37. extern TargetEntry *flatCopyTargetEntry(TargetEntry *src_tle);
  38. extern FromExpr *makeFromExpr(List *fromlist, Node *quals);
  39. extern Const *makeConst(Oid consttype,
  40. int32 consttypmod,
  41. Oid constcollid,
  42. int constlen,
  43. Datum constvalue,
  44. bool constisnull,
  45. bool constbyval);
  46. extern Const *makeNullConst(Oid consttype, int32 consttypmod, Oid constcollid);
  47. extern Node *makeBoolConst(bool value, bool isnull);
  48. extern Expr *makeBoolExpr(BoolExprType boolop, List *args, int location);
  49. extern Alias *makeAlias(const char *aliasname, List *colnames);
  50. extern RelabelType *makeRelabelType(Expr *arg, Oid rtype, int32 rtypmod,
  51. Oid rcollid, CoercionForm rformat);
  52. extern RangeVar *makeRangeVar(char *schemaname, char *relname, int location);
  53. extern TypeName *makeTypeName(char *typnam);
  54. extern TypeName *makeTypeNameFromNameList(List *names);
  55. extern TypeName *makeTypeNameFromOid(Oid typeOid, int32 typmod);
  56. extern ColumnDef *makeColumnDef(const char *colname,
  57. Oid typeOid, int32 typmod, Oid collOid);
  58. extern FuncExpr *makeFuncExpr(Oid funcid, Oid rettype, List *args,
  59. Oid funccollid, Oid inputcollid, CoercionForm fformat);
  60. extern FuncCall *makeFuncCall(List *name, List *args, int location);
  61. extern DefElem *makeDefElem(char *name, Node *arg);
  62. extern DefElem *makeDefElemExtended(char *nameSpace, char *name, Node *arg,
  63. DefElemAction defaction);
  64. extern GroupingSet *makeGroupingSet(GroupingSetKind kind, List *content, int location);
  65. #endif /* MAKEFUNC_H */