to issue<56337229>:adjust delete from __all_ncomp_dll filter condition
This commit is contained in:
		@ -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))) {
 | 
				
			||||||
 | 
				
			|||||||
@ -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_;
 | 
				
			||||||
 | 
				
			|||||||
@ -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()));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user