!4251 支持忽略PL/SQL间的依赖进行创建PL/SQL

Merge pull request !4251 from lukeman/master
This commit is contained in:
opengauss_bot
2023-10-24 01:55:31 +00:00
committed by Gitee
110 changed files with 18161 additions and 485 deletions

View File

@ -130,6 +130,7 @@ PG_KEYWORD("commit", COMMIT, UNRESERVED_KEYWORD)
PG_KEYWORD("committed", COMMITTED, UNRESERVED_KEYWORD)
PG_KEYWORD("compact", COMPACT, TYPE_FUNC_NAME_KEYWORD)
PG_KEYWORD("compatible_illegal_chars", COMPATIBLE_ILLEGAL_CHARS, UNRESERVED_KEYWORD)
PG_KEYWORD("compile", COMPILE, UNRESERVED_KEYWORD)
PG_KEYWORD("complete", COMPLETE, UNRESERVED_KEYWORD)
PG_KEYWORD("completion", COMPLETION, UNRESERVED_KEYWORD)
PG_KEYWORD("compress", COMPRESS, UNRESERVED_KEYWORD)
@ -589,6 +590,7 @@ PG_KEYWORD("snapshot", SNAPSHOT, UNRESERVED_KEYWORD)
PG_KEYWORD("some", SOME, RESERVED_KEYWORD)
PG_KEYWORD("source", SOURCE_P, UNRESERVED_KEYWORD)
PG_KEYWORD("space", SPACE, UNRESERVED_KEYWORD)
PG_KEYWORD("specification", SPECIFICATION, UNRESERVED_KEYWORD)
PG_KEYWORD("spill", SPILL, UNRESERVED_KEYWORD)
PG_KEYWORD("split", SPLIT, UNRESERVED_KEYWORD)
PG_KEYWORD("sql", SQL_P, UNRESERVED_KEYWORD)

View File

@ -19,14 +19,18 @@
typedef HeapTuple Type;
extern Type LookupTypeName(ParseState* pstate, const TypeName* typname, int32* typmod_p, bool print_notice = true);
extern Type LookupTypeNameSupportUndef(ParseState *pstate, const TypeName *typeName,
int32 *typmod_p, bool print_notice = true);
extern Type LookupTypeName(ParseState* pstate, const TypeName* typname, int32* typmod_p, bool print_notice = true,
TypeDependExtend* dependExtend = NULL);
extern Type LookupTypeNameExtended(ParseState* pstate, const TypeName* typname, int32* typmod_p, bool temp_ok,
bool print_notice = true);
bool print_notice = true, TypeDependExtend* dependExtend = NULL);
extern Oid LookupPctTypeInPackage(RangeVar* rel, Oid pkgOid, const char* field);
extern Oid LookupTypeInPackage(List* typeNames, const char* typeName, Oid pkgOid = InvalidOid, Oid namespaceId = InvalidOid);
extern Type typenameType(ParseState* pstate, const TypeName* typname, int32* typmod_p);
extern Type typenameType(ParseState* pstate, const TypeName* typname, int32* typmod_p, TypeDependExtend* dependExtend = NULL);
extern Oid typenameTypeId(ParseState* pstate, const TypeName* typname);
extern void typenameTypeIdAndMod(ParseState* pstate, const TypeName* typname, Oid* typeid_p, int32* typmod_p);
extern void typenameTypeIdAndMod(ParseState* pstate, const TypeName* typname, Oid* typeid_p, int32* typmod_p,
TypeDependExtend* dependExtend = NULL);
extern char* TypeNameToString(const TypeName* typname);
extern char* TypeNameListToString(List* typenames);
@ -55,11 +59,19 @@ extern bool IsTypeSupportedByORCRelation(_in_ Oid typeOid);
extern bool IsTypeSupportedByTsStore(_in_ int kvtype, _in_ Oid typeOid);
extern bool IsTypeSupportedByUStore (_in_ Oid typeOid, _in_ int32 typeMod);
extern TypeName *typeStringToTypeName(const char *str);
extern void parseTypeString(const char* str, Oid* typeid_p, int32* typmod_p);
extern void parseTypeString(const char* str, Oid* typeid_p, int32* typmod_p, TypeDependExtend* depenExtend = NULL);
extern bool IsTypeTableInInstallationGroup(const Type type_tup);
extern HeapTuple FindPkgVariableType(ParseState* pstate, const TypeName* typname, int32* typmod_p);
extern HeapTuple FindPkgVariableType(ParseState* pstate, const TypeName* typname, int32* typmod_p,
TypeDependExtend* depend_extend = NULL);
extern char* CastPackageTypeName(const char* typName, Oid pkgOid, bool isPackage, bool isPublic = true);
extern bool IsBinaryType(Oid typid);
#define ISCOMPLEX(typeid) (typeidTypeRelid(typeid) != InvalidOid)
extern void check_type_supports_multi_charset(Oid typid, bool allow_array);
extern char* ParseTypeName(const char* typName, Oid pkgOid);
typedef enum TypeTupStatus {
NormalTypeTup = 0,
UndefineTypeTup = 1,
InvalidTypeTup = 2
} TypeTupStatus;
extern TypeTupStatus GetTypeTupStatus(Type typ);
#endif /* PARSE_TYPE_H */

View File

@ -117,6 +117,7 @@ typedef struct core_yy_extra_type {
bool include_ora_comment; /* dont igore comment when ture */
int func_param_begin; /* function and procedure param string start pos,exclude left parenthesis */
int func_param_end; /* function and procedure param string end pos,exclude right parenthesis */
int return_pos_end;
bool isPlpgsqlKeyWord;
const PlpgsqlKeywordValue* plKeywordValue;
bool is_delimiter_name;