[CP] to issue<57135401>:remove __all_ncomp_dll table data when drop user

This commit is contained in:
hanr881 2024-06-17 12:25:29 +00:00 committed by ob-robot
parent f8c83cc195
commit 38f6ef5b45

View File

@ -858,6 +858,11 @@ int ObDDLOperator::drop_database(const ObDatabaseSchema &db_schema,
package_schema->get_package_id(),
new_schema_version, trans))) {
LOG_WARN("drop package failed", KR(ret), "package_id", package_schema->get_package_id());
} else if (OB_FAIL(pl::ObRoutinePersistentInfo::delete_dll_from_disk(trans,
tenant_id,
package_schema->get_package_id(),
package_schema->get_database_id()))) {
LOG_WARN("fail to delete ddl from disk", K(ret));
} else {
// delete audit in package
audits.reuse();
@ -923,6 +928,11 @@ int ObDDLOperator::drop_database(const ObDatabaseSchema &db_schema,
} else if (OB_FAIL(schema_service_impl->get_routine_sql_service().drop_routine(
*routine_info, new_schema_version, trans))) {
LOG_WARN("drop routine failed", KR(ret), "routine_id", routine_id);
} else if (OB_FAIL(pl::ObRoutinePersistentInfo::delete_dll_from_disk(trans,
routine_info->get_tenant_id(),
routine_info->get_routine_id(),
routine_info->get_database_id()))) {
LOG_WARN("fail to delete ddl from disk", K(ret));
} else {
// delete audit in routine
audits.reuse();
@ -987,6 +997,25 @@ int ObDDLOperator::drop_database(const ObDatabaseSchema &db_schema,
*udt_info, new_schema_version, trans))) {
LOG_WARN("drop routine failed", "routine_id", udt_info->get_type_id(), K(ret));
}
if (OB_SUCC(ret)) {
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)),
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)),
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)),
udt_info->get_database_id()));
}
}
}
}
}