Files
openGauss-server/src/include/utils/pl_package.h

77 lines
2.5 KiB
C

/*
* Copyright (c) 2020 Huawei Technologies Co.,Ltd.
*
* openGauss is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
*
* http://license.coscl.org.cn/MulanPSL2
*
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PSL v2 for more details.
* ---------------------------------------------------------------------------------------
*
* pl_package.h
* Definition about package.
*
*
* IDENTIFICATION
* src/common/pl/plpgsql/src/pl_package.h
*
* ---------------------------------------------------------------------------------------
*/
#ifndef PL_PACKAGE_H
#define PL_PACKAGE_H
#include "utils/plpgsql.h"
extern bool check_search_path_interface(List *schemas, HeapTuple proc_tup);
extern PLpgSQL_package* plpgsql_pkg_HashTableLookup(PLpgSQL_pkg_hashkey* pkg_key);
extern void delete_package(PLpgSQL_package* pkg);
extern bool plpgsql_check_opexpr_colocate(
Query* query, List* qry_part_attr_num, List* trig_part_attr_num, PLpgSQL_function* func, List* opexpr_list);
extern bool plpgsql_check_updel_colocate(
Query* query, List* qry_part_attr_num, List* trig_part_attr_num, PLpgSQL_function* func);
extern bool check_search_path_interface(List *schemas, HeapTuple proc_tup);
extern void plpgsql_compile_error_callback(void* arg);
extern Oid findPackageParameter(const char* objname);
extern int plpgsql_getCustomErrorCode(void);
extern PLpgSQL_row* build_row_from_class(Oid class_oid);
extern int GetLineNumber(const char* procedureStr, int loc);
extern int GetProcedureLineNumberInPackage(const char* procedureStr, int loc);
extern void InsertError(Oid objId);
extern int CompileWhich();
extern void InsertErrorMessage(const char* message, int yyloc, bool isQueryString = false, int lines = 0);
extern void DropErrorByOid(int objtype, Oid objoid);
extern bool IsOnlyCompilePackage();
extern HeapTuple getCursorTypeTup(const char* word);
extern List* GetPackageListName(const char* pkgName, const Oid nspOid);
extern HeapTuple getPLpgsqlVarTypeTup(char* word);
extern HeapTuple FindRowVarColType(List* nameList, int* collectionType = NULL, Oid* tableofIndexType = NULL,
int32* typMod = NULL, TypeDependExtend* dependExtend = NULL);
#endif