to issue<56337229>:adjust delete from __all_ncomp_dll filter condition

This commit is contained in:
hanr881
2024-04-24 10:26:37 +00:00
committed by ob-robot
parent 3ac857c73e
commit aacc84bfc9
3 changed files with 23 additions and 12 deletions

View File

@ -549,7 +549,8 @@ int ObRoutinePersistentInfo::process_storage_dll(ObIAllocator &alloc,
int ObRoutinePersistentInfo::delete_dll_from_disk(common::ObISQLClient &trans,
uint64_t tenant_id,
uint64_t key_id)
uint64_t key_id,
uint64_t database_id)
{
int ret = OB_SUCCESS;
@ -579,7 +580,7 @@ int ObRoutinePersistentInfo::delete_dll_from_disk(common::ObISQLClient &trans,
if (OB_INVALID_ID == key_id) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("unexpected key id.", K(ret));
} else if (OB_FAIL(sql.assign_fmt("delete FROM %s where key_id = %ld", OB_ALL_NCOMP_DLL_TNAME, key_id))) {
} else if (OB_FAIL(sql.assign_fmt("delete FROM %s where database_id = %ld and key_id = %ld", OB_ALL_NCOMP_DLL_TNAME, database_id, key_id))) {
LOG_WARN("delete from __all_ncomp_dll table failed.", K(ret), K(key_id));
} else {
if (OB_FAIL(trans.write(exec_tenant_id, sql.ptr(), affected_rows))) {

View File

@ -130,7 +130,8 @@ public:
static int delete_dll_from_disk(common::ObISQLClient &trans,
uint64_t tenant_id,
uint64_t key_id);
uint64_t key_id,
uint64_t database_id);
private:
uint64_t tenant_id_;

View File

@ -8912,7 +8912,8 @@ int ObDDLOperator::drop_routine(const ObRoutineInfo &routine_info,
routine_info, new_schema_version, trans, ddl_stmt_str))) {
LOG_WARN("drop routine info failed", K(routine_info), K(ret));
}
OZ (pl::ObRoutinePersistentInfo::delete_dll_from_disk(trans, routine_info.get_tenant_id(), routine_info.get_routine_id()));
OZ (pl::ObRoutinePersistentInfo::delete_dll_from_disk(trans, routine_info.get_tenant_id(),
routine_info.get_routine_id(), routine_info.get_database_id()));
OZ (ObDependencyInfo::delete_schema_object_dependency(trans, routine_info.get_tenant_id(),
routine_info.get_routine_id(),
new_schema_version,
@ -9253,17 +9254,20 @@ int ObDDLOperator::drop_package(const ObPackageInfo &package_info,
package_info.get_package_id(),
new_schema_version,
package_info.get_object_type()));
OZ (pl::ObRoutinePersistentInfo::delete_dll_from_disk(trans, tenant_id, package_info.get_package_id()));
OZ (pl::ObRoutinePersistentInfo::delete_dll_from_disk(trans, tenant_id, package_info.get_package_id(),
package_info.get_database_id()));
if (OB_NOT_NULL(package_body_info)) {
OZ (ObDependencyInfo::delete_schema_object_dependency(trans, tenant_id,
package_body_info->get_package_id(),
new_schema_version,
package_body_info->get_object_type()));
OZ (pl::ObRoutinePersistentInfo::delete_dll_from_disk(trans, tenant_id, package_body_info->get_package_id()));
OZ (pl::ObRoutinePersistentInfo::delete_dll_from_disk(trans, tenant_id, package_body_info->get_package_id(),
package_body_info->get_database_id()));
}
}
} else {
OZ (pl::ObRoutinePersistentInfo::delete_dll_from_disk(trans, tenant_id, package_info.get_package_id()));
OZ (pl::ObRoutinePersistentInfo::delete_dll_from_disk(trans, tenant_id, package_info.get_package_id(),
package_info.get_database_id()));
}
}
@ -9437,9 +9441,11 @@ int ObDDLOperator::drop_trigger(const ObTriggerInfo &trigger_info,
new_schema_version,
trigger_info.get_object_type()));
OZ (pl::ObRoutinePersistentInfo::delete_dll_from_disk(trans, tenant_id,
share::schema::ObTriggerInfo::get_trigger_spec_package_id(trigger_info.get_trigger_id())));
share::schema::ObTriggerInfo::get_trigger_spec_package_id(trigger_info.get_trigger_id()),
trigger_info.get_database_id()));
OZ (pl::ObRoutinePersistentInfo::delete_dll_from_disk(trans, tenant_id,
share::schema::ObTriggerInfo::get_trigger_body_package_id(trigger_info.get_trigger_id())));
share::schema::ObTriggerInfo::get_trigger_body_package_id(trigger_info.get_trigger_id()),
trigger_info.get_database_id()));
if (OB_SUCC(ret) && !trigger_info.is_system_type() && is_update_table_schema_version) {
uint64_t base_table_id = trigger_info.get_base_object_id();
OZ (schema_service->get_table_sql_service().update_data_table_schema_version(trans,
@ -9942,16 +9948,19 @@ int ObDDLOperator::drop_udt(const ObUDTTypeInfo &udt_info,
if (udt_info.is_object_spec_ddl() &&
OB_INVALID_ID != ObUDTObjectType::mask_object_id(udt_info.get_object_spec_id(tenant_id))) {
OZ (pl::ObRoutinePersistentInfo::delete_dll_from_disk(trans, tenant_id,
ObUDTObjectType::mask_object_id(udt_info.get_object_spec_id(tenant_id))));
ObUDTObjectType::mask_object_id(udt_info.get_object_spec_id(tenant_id)),
udt_info.get_database_id()));
if (udt_info.has_type_body() &&
OB_INVALID_ID != ObUDTObjectType::mask_object_id(udt_info.get_object_body_id(tenant_id))) {
OZ (pl::ObRoutinePersistentInfo::delete_dll_from_disk(trans, tenant_id,
ObUDTObjectType::mask_object_id(udt_info.get_object_body_id(tenant_id))));
ObUDTObjectType::mask_object_id(udt_info.get_object_body_id(tenant_id)),
udt_info.get_database_id()));
}
} else if (udt_info.is_object_body_ddl() &&
OB_INVALID_ID != ObUDTObjectType::mask_object_id(udt_info.get_object_body_id(tenant_id))) {
OZ (pl::ObRoutinePersistentInfo::delete_dll_from_disk(trans, tenant_id,
ObUDTObjectType::mask_object_id(udt_info.get_object_body_id(tenant_id))));
ObUDTObjectType::mask_object_id(udt_info.get_object_body_id(tenant_id)),
udt_info.get_database_id()));
}
}