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 | |
17 | #include "nodes/execnodes.h" |
18 | #include "nodes/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, int location); |
83 | |
84 | extern Expr *make_opclause(Oid opno, Oid opresulttype, bool opretset, |
85 | Expr *leftop, Expr *rightop, |
86 | Oid opcollid, Oid inputcollid); |
87 | |
88 | extern Expr *make_andclause(List *andclauses); |
89 | extern Expr *make_orclause(List *orclauses); |
90 | extern Expr *make_notclause(Expr *notclause); |
91 | |
92 | extern Node *make_and_qual(Node *qual1, Node *qual2); |
93 | extern Expr *make_ands_explicit(List *andclauses); |
94 | extern List *make_ands_implicit(Expr *clause); |
95 | |
96 | extern IndexInfo *makeIndexInfo(int numattrs, int numkeyattrs, Oid amoid, |
97 | List *expressions, List *predicates, |
98 | bool unique, bool isready, bool concurrent); |
99 | |
100 | extern DefElem *makeDefElem(char *name, Node *arg, int location); |
101 | extern DefElem *makeDefElemExtended(char *nameSpace, char *name, Node *arg, |
102 | DefElemAction defaction, int location); |
103 | |
104 | extern GroupingSet *makeGroupingSet(GroupingSetKind kind, List *content, int location); |
105 | |
106 | extern VacuumRelation *makeVacuumRelation(RangeVar *relation, Oid oid, List *va_cols); |
107 | |
108 | #endif /* MAKEFUNC_H */ |
109 | |