diff --git a/src/rootserver/restore/ob_import_table_job_scheduler.cpp b/src/rootserver/restore/ob_import_table_job_scheduler.cpp index f59c168d82..a6fb90e4df 100644 --- a/src/rootserver/restore/ob_import_table_job_scheduler.cpp +++ b/src/rootserver/restore/ob_import_table_job_scheduler.cpp @@ -350,7 +350,12 @@ int ObImportTableJobScheduler::canceling_(share::ObImportTableJob &job) } else if (!is_exist) { } else { LOG_INFO("[IMPORT_TABLE]cancel import table task", K(arg)); - if (OB_FAIL(ObDDLServerClient::abort_redef_table(arg))) { + share::ObTaskId trace_id(*ObCurTraceId::get_trace_id()); + ObImportResult result; + if (OB_FAIL(result.set_result(OB_CANCELED, trace_id, GCONF.self_addr_))) { + LOG_WARN("failed to set result", K(ret)); + } else if (OB_FALSE_IT(task.set_result(result))) { + } else if (OB_FAIL(ObDDLServerClient::abort_redef_table(arg))) { LOG_WARN("failed to abort redef table", K(ret), K(arg)); } else if (OB_FAIL(task_helper_.advance_status(*sql_proxy_, task, next_status))) { LOG_WARN("failed to cancel import task", K(ret), K(task)); @@ -536,8 +541,17 @@ int ObImportTableTaskScheduler::try_advance_status_(const int err_code) int ret = OB_SUCCESS; if (OB_FAIL(err_code) && ObImportTableUtil::can_retrieable_err(err_code)) { // do nothing } else { + share::ObImportTableTaskStatus next_status = import_task_->get_status().get_next_status(err_code); - if (OB_FAIL(helper_.advance_status(*sql_proxy_, *import_task_, next_status))) { + if (import_task_->get_result().is_succeed()) { // avoid to cover comment + share::ObTaskId trace_id(*ObCurTraceId::get_trace_id()); + ObImportResult result; + if (OB_FAIL(result.set_result(err_code, trace_id, GCONF.self_addr_))) { + LOG_WARN("failed to set result", K(ret)); + } else if (OB_FALSE_IT(import_task_->set_result(result))) { + } + } + if (FAILEDx(helper_.advance_status(*sql_proxy_, *import_task_, next_status))) { LOG_WARN("failed to advance status", K(ret), KPC_(import_task), K(next_status)); } } @@ -667,6 +681,7 @@ int ObImportTableTaskScheduler::construct_import_table_schema_( target_table_schema.set_data_table_id(0); target_table_schema.clear_constraint(); target_table_schema.clear_foreign_key_infos(); + target_table_schema.set_table_state_flag(ObTableStateFlag::TABLE_STATE_NORMAL); uint64_t database_id = OB_INVALID_ID; if (OB_FAIL(target_tenant_guard.get_database_id(import_task_->get_tenant_id(), diff --git a/src/share/restore/ob_import_table_struct.cpp b/src/share/restore/ob_import_table_struct.cpp index 1461c2fe29..1bd756111b 100644 --- a/src/share/restore/ob_import_table_struct.cpp +++ b/src/share/restore/ob_import_table_struct.cpp @@ -363,11 +363,6 @@ int ObImportTableTask::parse_from(common::sqlclient::ObMySQLResult &result) bool is_succeed = true; if (0 == STRCMP("FAILED", result_buf)) { is_succeed = false; - } else if (0 == STRCMP("SUCCEESS", result_buf)) { - is_succeed = true; - } else { - ret = OB_ERR_UNEXPECTED; - LOG_WARN("invalid result str", K(ret)); } result_.set_result(is_succeed, comment); } diff --git a/src/sql/resolver/cmd/ob_alter_system_resolver.cpp b/src/sql/resolver/cmd/ob_alter_system_resolver.cpp index 7ee8ef5663..101823bd93 100644 --- a/src/sql/resolver/cmd/ob_alter_system_resolver.cpp +++ b/src/sql/resolver/cmd/ob_alter_system_resolver.cpp @@ -4990,7 +4990,7 @@ int ObRecoverTableResolver::resolve(const ParseNode &parse_tree) } else if (OB_NOT_NULL(parse_tree.children_[8]) && OB_FAIL(Util::resolve_string(parse_tree.children_[8], stmt->get_rpc_arg().restore_tenant_arg_.description_))) { LOG_WARN("failed to resolve desc", K(ret)); -#ifndef OB_BUILD_TDE_SECURITY +#ifdef OB_BUILD_TDE_SECURITY } else if (OB_FAIL(resolve_kms_info_( stmt->get_rpc_arg().restore_tenant_arg_.restore_option_, stmt->get_rpc_arg().restore_tenant_arg_.kms_info_))) { LOG_WARN("failed to resolve kms info", K(ret)); @@ -5322,7 +5322,7 @@ int ObRecoverTableResolver::resolve_backup_set_pwd_(common::ObString &pwd) return ret; } -#ifndef OB_BUILD_TDE_SECURITY +#ifdef OB_BUILD_TDE_SECURITY int ObRecoverTableResolver::resolve_kms_info_(const common::ObString &restore_option, common::ObString &kms_info) { int ret = OB_SUCCESS; diff --git a/src/sql/resolver/cmd/ob_alter_system_resolver.h b/src/sql/resolver/cmd/ob_alter_system_resolver.h index b83f0fa758..e99d553b38 100644 --- a/src/sql/resolver/cmd/ob_alter_system_resolver.h +++ b/src/sql/resolver/cmd/ob_alter_system_resolver.h @@ -275,7 +275,7 @@ private: const ParseNode *node, share::ObImportRemapArg &remap_arg); int resolve_remap_tablespaces_( const ParseNode *node, share::ObImportRemapArg &remap_arg); -#ifndef OB_BUILD_TDE_SECURITY +#ifdef OB_BUILD_TDE_SECURITY int resolve_kms_info_(const common::ObString &restore_option, common::ObString &kms_info); #endif int resolve_backup_set_pwd_(common::ObString &pwd);