diff --git a/src/rootserver/ddl_task/ob_ddl_task.cpp b/src/rootserver/ddl_task/ob_ddl_task.cpp index a36b39885c..b7961c9191 100644 --- a/src/rootserver/ddl_task/ob_ddl_task.cpp +++ b/src/rootserver/ddl_task/ob_ddl_task.cpp @@ -1440,7 +1440,10 @@ int ObDDLTaskRecordOperator::check_has_conflict_ddl( } else if (task_record.task_id_ != task_id) { switch (ddl_type) { case ObDDLType::DDL_DROP_TABLE: { - has_conflict_ddl = true; + if (task_record.ddl_type_ == ObDDLType::DDL_DROP_INDEX && task_record.target_object_id_ != task_record.object_id_) { + LOG_WARN("conflict with ddl", K(task_record)); + has_conflict_ddl = true; + } break; } default: { diff --git a/src/rootserver/ob_ddl_service.cpp b/src/rootserver/ob_ddl_service.cpp index 81a8575231..8c48f271ec 100644 --- a/src/rootserver/ob_ddl_service.cpp +++ b/src/rootserver/ob_ddl_service.cpp @@ -18229,7 +18229,7 @@ int ObDDLService::drop_table(const ObDropTableArg &drop_table_arg, const obrpc:: if (table_schema->get_table_type() == MATERIALIZED_VIEW || table_schema->is_tmp_table()) { to_recyclebin = false; } - if (OB_FAIL(ObDDLTaskRecordOperator::check_has_conflict_ddl( + if (drop_table_arg.table_type_ == USER_TABLE && OB_FAIL(ObDDLTaskRecordOperator::check_has_conflict_ddl( sql_proxy_, drop_table_arg.tenant_id_, table_schema->get_table_id(),