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