Files
openGauss-server/src/include/nodes/makefuncs.h
2020-08-17 14:55:37 +08:00

78 lines
3.2 KiB
C
Executable File

/* -------------------------------------------------------------------------
*
* makefuncs.h
* prototypes for the creator functions (for primitive nodes)
*
*
* Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
* src/include/nodes/makefuncs.h
*
* -------------------------------------------------------------------------
*/
#ifndef MAKEFUNC_H
#define MAKEFUNC_H
#include "nodes/parsenodes.h"
#include "nodes/execnodes.h"
extern A_Expr* makeA_Expr(A_Expr_Kind kind, List* name, Node* lexpr, Node* rexpr, int location);
extern A_Expr* makeSimpleA_Expr(A_Expr_Kind kind, char* name, Node* lexpr, Node* rexpr, int location);
extern Var* makeVar(Index varno, AttrNumber varattno, Oid vartype, int32 vartypmod, Oid varcollid, Index varlevelsup);
extern Var* makeVarFromTargetEntry(Index varno, TargetEntry* tle);
extern Var* makeWholeRowVar(RangeTblEntry* rte, Index varno, Index varlevelsup, bool allowScalar);
extern TargetEntry* makeTargetEntry(Expr* expr, AttrNumber resno, char* resname, bool resjunk);
extern TargetEntry* flatCopyTargetEntry(TargetEntry* src_tle);
extern FromExpr* makeFromExpr(List* fromlist, Node* quals);
extern Const* makeConst(Oid consttype, int32 consttypmod, Oid constcollid, int constlen, Datum constvalue,
bool constisnull, bool constbyval, Cursor_Data* cur = NULL);
extern ColumnRef* makeColumnRef(char* relname, char* colname, int location);
extern Const* makeMaxConst(Oid consttype, int32 consttypmod, Oid constcollid);
extern Node* makeNullAConst(int location);
extern Const* makeNullConst(Oid consttype, int32 consttypmod, Oid constcollid);
extern Node* makeBoolConst(bool value, bool isnull);
extern Expr* makeBoolExpr(BoolExprType boolop, List* args, int location);
extern Alias* makeAlias(const char* aliasname, List* colnames);
extern RelabelType* makeRelabelType(Expr* arg, Oid rtype, int32 rtypmod, Oid rcollid, CoercionForm rformat);
extern RangeVar* makeRangeVar(char* schemaname, char* relname, int location);
extern TypeName* makeTypeName(char* typnam);
extern TypeName* makeTypeNameFromNameList(List* names);
extern TypeName* makeTypeNameFromOid(Oid typeOid, int32 typmod);
extern FuncExpr* makeFuncExpr(
Oid funcid, Oid rettype, List* args, Oid funccollid, Oid inputcollid, CoercionForm fformat);
extern DefElem* makeDefElem(char* name, Node* arg);
extern DefElem* makeDefElemExtended(char* nameSpace, char* name, Node* arg, DefElemAction defaction);
extern NullTest* makeNullTest(NullTestType type, Expr* expr);
extern Expr* makeBoolExprTreeNode(BoolExprType boolop, List* args);
extern HashFilter* makeHashFilter(List* arg, List* typeOidlist, List* nodelist);
extern GroupingSet* makeGroupingSet(GroupingSetKind kind, List* content, int location);
extern Node* makeTidConst(ItemPointer item);
extern FuncCall* makeFuncCall(List* funcname, List* args, int location);
extern Param* makeParam(
ParamKind paramkind, int paramid, Oid paramtype, int32 paramtypmod, Oid paramcollid, int location);
extern ColumnDef* makeColumnDef(const char* colname, Oid typeOid, int32 typmod, Oid collOid);
extern IndexInfo* makeIndexInfo(int numattrs, List *expressions, List *predicates,
bool unique, bool isready, bool concurrent);
#endif /* MAKEFUNC_H */