codekingpro/portable-devtools
115k
1/*-------------------------------------------------------------------------2 *3 * makefuncs.h4 * prototypes for the creator functions of various nodes5 *6 *7 * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group8 * Portions Copyright (c) 1994, Regents of the University of California9 *10 * src/include/nodes/makefuncs.h11 *12 *-------------------------------------------------------------------------13 */14#ifndef MAKEFUNC_H15#define MAKEFUNC_H16 17#include "nodes/execnodes.h"18#include "nodes/parsenodes.h"19 20 21extern A_Expr *makeA_Expr(A_Expr_Kind kind, List *name,22 Node *lexpr, Node *rexpr, int location);23 24extern A_Expr *makeSimpleA_Expr(A_Expr_Kind kind, char *name,25 Node *lexpr, Node *rexpr, int location);26 27extern Var *makeVar(int varno,28 AttrNumber varattno,29 Oid vartype,30 int32 vartypmod,31 Oid varcollid,32 Index varlevelsup);33 34extern Var *makeVarFromTargetEntry(int varno,35 TargetEntry *tle);36 37extern Var *makeWholeRowVar(RangeTblEntry *rte,38 int varno,39 Index varlevelsup,40 bool allowScalar);41 42extern TargetEntry *makeTargetEntry(Expr *expr,43 AttrNumber resno,44 char *resname,45 bool resjunk);46 47extern TargetEntry *flatCopyTargetEntry(TargetEntry *src_tle);48 49extern FromExpr *makeFromExpr(List *fromlist, Node *quals);50 51extern Const *makeConst(Oid consttype,52 int32 consttypmod,53 Oid constcollid,54 int constlen,55 Datum constvalue,56 bool constisnull,57 bool constbyval);58 59extern Const *makeNullConst(Oid consttype, int32 consttypmod, Oid constcollid);60 61extern Node *makeBoolConst(bool value, bool isnull);62 63extern Expr *makeBoolExpr(BoolExprType boolop, List *args, int location);64 65extern Alias *makeAlias(const char *aliasname, List *colnames);66 67extern RelabelType *makeRelabelType(Expr *arg, Oid rtype, int32 rtypmod,68 Oid rcollid, CoercionForm rformat);69 70extern RangeVar *makeRangeVar(char *schemaname, char *relname, int location);71 72extern TypeName *makeTypeName(char *typnam);73extern TypeName *makeTypeNameFromNameList(List *names);74extern TypeName *makeTypeNameFromOid(Oid typeOid, int32 typmod);75 76extern ColumnDef *makeColumnDef(const char *colname,77 Oid typeOid, int32 typmod, Oid collOid);78 79extern FuncExpr *makeFuncExpr(Oid funcid, Oid rettype, List *args,80 Oid funccollid, Oid inputcollid, CoercionForm fformat);81 82extern FuncCall *makeFuncCall(List *name, List *args,83 CoercionForm funcformat, int location);84 85extern Expr *make_opclause(Oid opno, Oid opresulttype, bool opretset,86 Expr *leftop, Expr *rightop,87 Oid opcollid, Oid inputcollid);88 89extern Expr *make_andclause(List *andclauses);90extern Expr *make_orclause(List *orclauses);91extern Expr *make_notclause(Expr *notclause);92 93extern Node *make_and_qual(Node *qual1, Node *qual2);94extern Expr *make_ands_explicit(List *andclauses);95extern List *make_ands_implicit(Expr *clause);96 97extern IndexInfo *makeIndexInfo(int numattrs, int numkeyattrs, Oid amoid,98 List *expressions, List *predicates,99 bool unique, bool nulls_not_distinct,100 bool isready, bool concurrent,101 bool summarizing);102 103extern DefElem *makeDefElem(char *name, Node *arg, int location);104extern DefElem *makeDefElemExtended(char *nameSpace, char *name, Node *arg,105 DefElemAction defaction, int location);106 107extern GroupingSet *makeGroupingSet(GroupingSetKind kind, List *content, int location);108 109extern VacuumRelation *makeVacuumRelation(RangeVar *relation, Oid oid, List *va_cols);110 111extern JsonFormat *makeJsonFormat(JsonFormatType type, JsonEncoding encoding,112 int location);113extern JsonValueExpr *makeJsonValueExpr(Expr *raw_expr, Expr *formatted_expr,114 JsonFormat *format);115extern Node *makeJsonKeyValue(Node *key, Node *value);116extern Node *makeJsonIsPredicate(Node *expr, JsonFormat *format,117 JsonValueType item_type, bool unique_keys,118 int location);119extern JsonEncoding makeJsonEncoding(char *name);120 121#endif /* MAKEFUNC_H */122 