[CP] to issue<2024122500106636323>:fix 4016 when hit disk cache of system package
This commit is contained in:
parent
e553c75a18
commit
b148d16cd5
@ -499,7 +499,7 @@ int ObPLCompiler::compile(
|
||||
lib::ObMallocHookAttrGuard malloc_guard(lib::ObMemAttr(MTL_ID(), GET_PL_MOD_STRING(OB_PL_CODE_GEN)));
|
||||
ObRoutinePersistentInfo::ObPLOperation op = ObRoutinePersistentInfo::ObPLOperation::NONE;
|
||||
ObRoutinePersistentInfo routine_storage(
|
||||
MTL_ID(), routine.get_database_id(), session_info_.get_database_id(), func_ast.get_id());
|
||||
MTL_ID(), routine.get_database_id(), session_info_.get_database_id(), func_ast.get_id(), routine.get_tenant_id());
|
||||
bool exist_same_name_obj_with_public_synonym = false;
|
||||
OZ (ObRoutinePersistentInfo::has_same_name_dependency_with_public_synonym(schema_guard_,
|
||||
func_ast.get_dependency_table(),
|
||||
@ -776,7 +776,8 @@ int ObPLCompiler::generate_package(const ObString &exec_env, ObPLPackageAST &pac
|
||||
ObRoutinePersistentInfo routine_storage(MTL_ID(),
|
||||
session_info_.get_database_id(),
|
||||
session_info_.get_database_id(),
|
||||
package.get_id());
|
||||
package.get_id(),
|
||||
get_tenant_id_by_object_id(package.get_id()));
|
||||
ObRoutinePersistentInfo::ObPLOperation op = ObRoutinePersistentInfo::ObPLOperation::NONE;
|
||||
bool exist_same_name_obj_with_public_synonym = false;
|
||||
OZ (ObRoutinePersistentInfo::has_same_name_dependency_with_public_synonym(schema_guard_,
|
||||
|
@ -569,8 +569,11 @@ int ObRoutinePersistentInfo::read_dll_from_disk(ObSQLSessionInfo *session_info,
|
||||
if (OB_SUCC(ret)) {
|
||||
bool match = false;
|
||||
int64_t tenant_schema_version = OB_INVALID_VERSION;
|
||||
if (OB_FAIL(schema_guard.get_schema_version(tenant_id_, tenant_schema_version))) {
|
||||
LOG_WARN("fail to get schema version");
|
||||
if (OB_INVALID_ID == tenant_id_belongs_) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("unexpected tenant id", K(ret));
|
||||
} else if (OB_FAIL(schema_guard.get_schema_version(tenant_id_belongs_, tenant_schema_version))) {
|
||||
LOG_WARN("fail to get schema version", K(ret), K(tenant_id_belongs_));
|
||||
} else if (merge_version == tenant_schema_version) {
|
||||
match = true;
|
||||
op = ObRoutinePersistentInfo::ObPLOperation::NONE;
|
||||
@ -592,7 +595,7 @@ int ObRoutinePersistentInfo::read_dll_from_disk(ObSQLSessionInfo *session_info,
|
||||
int8_t level = 0;
|
||||
int16_t id = 0;
|
||||
if (OB_FAIL(decode_dll(*session_info, schema_guard, exec_env, unit_ast, unit, binary.ptr(), binary.length(), pos, level, id))) {
|
||||
LOG_WARN("fail to decode dll", K(ret), K(level), K(id));
|
||||
LOG_WARN("fail to decode dll", K(ret), K(level), K(id), K(merge_version), K(tenant_schema_version));
|
||||
} else if (0 != level || 0 != id) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("fail to decode dll", K(ret), K(level), K(id));
|
||||
|
@ -80,12 +80,14 @@ public:
|
||||
#else
|
||||
arch_type_(ARCH_TYPE_DEF[ObPLArchType::OB_X86_ARCH_TYPE]),
|
||||
#endif
|
||||
allocator_(ObMemAttr(MTL_ID() == OB_INVALID_TENANT_ID ? OB_SYS_TENANT_ID : MTL_ID(), GET_PL_MOD_STRING(OB_PL_JIT)))
|
||||
allocator_(ObMemAttr(MTL_ID() == OB_INVALID_TENANT_ID ? OB_SYS_TENANT_ID : MTL_ID(), GET_PL_MOD_STRING(OB_PL_JIT))),
|
||||
tenant_id_belongs_(OB_INVALID_ID)
|
||||
{}
|
||||
ObRoutinePersistentInfo(uint64_t tenant_id,
|
||||
uint64_t database_id,
|
||||
uint64_t compile_db_id,
|
||||
uint64_t key_id)
|
||||
uint64_t key_id,
|
||||
uint64_t tenant_id_belongs)
|
||||
: tenant_id_(tenant_id),
|
||||
database_id_(database_id),
|
||||
compile_db_id_(compile_db_id),
|
||||
@ -95,7 +97,8 @@ public:
|
||||
#else
|
||||
arch_type_(ARCH_TYPE_DEF[ObPLArchType::OB_X86_ARCH_TYPE]),
|
||||
#endif
|
||||
allocator_(ObMemAttr(tenant_id_, GET_PL_MOD_STRING(OB_PL_JIT)))
|
||||
allocator_(ObMemAttr(tenant_id_, GET_PL_MOD_STRING(OB_PL_JIT))),
|
||||
tenant_id_belongs_(tenant_id_belongs)
|
||||
{}
|
||||
|
||||
int64_t get_head_size() { return 1 + 1 + 2 + 2;/* 8bit flags + 8bit level + 8bit id + 8bit nums*/ }
|
||||
@ -166,6 +169,7 @@ private:
|
||||
ObString arch_type_;
|
||||
|
||||
ObArenaAllocator allocator_;
|
||||
uint64_t tenant_id_belongs_;
|
||||
};
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user