Files
openGauss-server/src/include/catalog/pg_proc_fn.h
2024-07-17 16:29:05 +08:00

80 lines
2.7 KiB
C

/* -------------------------------------------------------------------------
*
* pg_proc_fn.h
* prototypes for functions in catalog/pg_proc.c
*
*
* Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
* src/include/catalog/pg_proc_fn.h
*
* -------------------------------------------------------------------------
*/
#ifndef PG_PROC_FN_H
#define PG_PROC_FN_H
#include "catalog/objectaddress.h"
#include "nodes/pg_list.h"
extern ObjectAddress ProcedureCreate(const char *procedureName,
Oid procNamespace,
Oid propackageid,
bool isOraStyle,
bool replace,
bool returnsSet,
Oid returnType,
Oid proowner,
Oid languageObjectId,
Oid languageValidator,
const char *prosrc,
const char *probin,
bool isAgg,
bool isWindowFunc,
bool security_definer,
bool isLeakProof,
bool isStrict,
char volatility,
oidvector *parameterTypes,
Datum allParameterTypes,
Datum parameterModes,
Datum parameterNames,
List *parameterDefaults,
Datum proconfig,
float4 procost,
float4 prorows,
int2vector *prodefaultargpos,
bool fenced,
bool shippable,
bool package,
bool proIsProcedure,
const char *proargsrc,
bool isPrivate = false,
TypeDependExtend* paramTypDependExt = NULL,
TypeDependExtend* retTypDependExt = NULL,
CreateFunctionStmt* stmt = NULL,
bool isPipelined = false,
FunctionPartitionInfo* partInfo = NULL
);
extern bool function_parse_error_transpose(const char *prosrc);
extern bool isSameParameterList(List* parameterList1, List* parameterList2);
extern char* getFuncName(List* funcNameList);
#ifndef ENABLE_MULTIPLE_NODES
extern char* ConvertArgModesToString(Datum proArgModes);
extern bool IsProArgModesEqual(Datum argModes1, Datum argModes2);
extern bool IsProArgModesEqualByTuple(HeapTuple tup, TupleDesc desc, oidvector* argModes);
extern oidvector* ConvertArgModesToMd5Vector(Datum proArgModes);
extern oidvector* MergeOidVector(oidvector* allArgTypes, oidvector* argModes);
#endif
extern oidvector* MakeMd5HashOids(oidvector* paramterTypes);
extern oidvector* ProcedureGetArgTypes(HeapTuple tuple);
extern Datum ProcedureGetAllArgTypes(HeapTuple tuple, bool* isNull);
#endif /* PG_PROC_FN_H */