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