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, int ObRoutinePersistentInfo::delete_dll_from_disk(common::ObISQLClient &trans,
uint64_t tenant_id, uint64_t tenant_id,
uint64_t key_id) uint64_t key_id,
uint64_t database_id)
{ {
int ret = OB_SUCCESS; int ret = OB_SUCCESS;
@ -579,7 +580,7 @@ int ObRoutinePersistentInfo::delete_dll_from_disk(common::ObISQLClient &trans,
if (OB_INVALID_ID == key_id) { if (OB_INVALID_ID == key_id) {
ret = OB_ERR_UNEXPECTED; ret = OB_ERR_UNEXPECTED;
LOG_WARN("unexpected key id.", K(ret)); 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)); LOG_WARN("delete from __all_ncomp_dll table failed.", K(ret), K(key_id));
} else { } else {
if (OB_FAIL(trans.write(exec_tenant_id, sql.ptr(), affected_rows))) { 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, static int delete_dll_from_disk(common::ObISQLClient &trans,
uint64_t tenant_id, uint64_t tenant_id,
uint64_t key_id); uint64_t key_id,
uint64_t database_id);
private: private:
uint64_t tenant_id_; 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))) { routine_info, new_schema_version, trans, ddl_stmt_str))) {
LOG_WARN("drop routine info failed", K(routine_info), K(ret)); 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(), OZ (ObDependencyInfo::delete_schema_object_dependency(trans, routine_info.get_tenant_id(),
routine_info.get_routine_id(), routine_info.get_routine_id(),
new_schema_version, new_schema_version,
@ -9253,17 +9254,20 @@ int ObDDLOperator::drop_package(const ObPackageInfo &package_info,
package_info.get_package_id(), package_info.get_package_id(),
new_schema_version, new_schema_version,
package_info.get_object_type())); 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)) { if (OB_NOT_NULL(package_body_info)) {
OZ (ObDependencyInfo::delete_schema_object_dependency(trans, tenant_id, OZ (ObDependencyInfo::delete_schema_object_dependency(trans, tenant_id,
package_body_info->get_package_id(), package_body_info->get_package_id(),
new_schema_version, new_schema_version,
package_body_info->get_object_type())); 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 { } 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, new_schema_version,
trigger_info.get_object_type())); trigger_info.get_object_type()));
OZ (pl::ObRoutinePersistentInfo::delete_dll_from_disk(trans, tenant_id, 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, 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) { 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(); uint64_t base_table_id = trigger_info.get_base_object_id();
OZ (schema_service->get_table_sql_service().update_data_table_schema_version(trans, 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() && if (udt_info.is_object_spec_ddl() &&
OB_INVALID_ID != ObUDTObjectType::mask_object_id(udt_info.get_object_spec_id(tenant_id))) { 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, 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() && if (udt_info.has_type_body() &&
OB_INVALID_ID != ObUDTObjectType::mask_object_id(udt_info.get_object_body_id(tenant_id))) { 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, 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() && } else if (udt_info.is_object_body_ddl() &&
OB_INVALID_ID != ObUDTObjectType::mask_object_id(udt_info.get_object_body_id(tenant_id))) { 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, 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()));
} }
} }