fix rebuild hidden table index failed
This commit is contained in:
committed by
wangzelin.wzl
parent
525fc5ba35
commit
e1f4909c8c
@ -539,48 +539,48 @@ int ObTableRedefinitionTask::copy_table_dependent_objects(const ObDDLTaskStatus
|
|||||||
LOG_WARN("copy table constraints failed", K(ret));
|
LOG_WARN("copy table constraints failed", K(ret));
|
||||||
} else if (OB_FAIL(copy_table_foreign_keys())) {
|
} else if (OB_FAIL(copy_table_foreign_keys())) {
|
||||||
LOG_WARN("copy table foreign keys failed", K(ret));
|
LOG_WARN("copy table foreign keys failed", K(ret));
|
||||||
}
|
} else {
|
||||||
|
// copy triggers(at current, not supported, skip it)
|
||||||
|
|
||||||
// copy triggers(at current, not supported, skip it)
|
// wait copy dependent objects to be finished
|
||||||
|
ObAddr unused_addr;
|
||||||
// wait copy dependent objects to be finished
|
for (common::hash::ObHashMap<ObDDLTaskKey, DependTaskStatus>::const_iterator iter = dependent_task_result_map_.begin();
|
||||||
ObAddr unused_addr;
|
iter != dependent_task_result_map_.end(); ++iter) {
|
||||||
for (common::hash::ObHashMap<ObDDLTaskKey, DependTaskStatus>::const_iterator iter = dependent_task_result_map_.begin();
|
const int64_t table_id = iter->first.object_id_;
|
||||||
iter != dependent_task_result_map_.end(); ++iter) {
|
const int64_t schema_version = iter->first.schema_version_;
|
||||||
const int64_t table_id = iter->first.object_id_;
|
const int64_t target_object_id = -1;
|
||||||
const int64_t schema_version = iter->first.schema_version_;
|
const int64_t child_task_id = iter->second.task_id_;
|
||||||
const int64_t target_object_id = -1;
|
if (iter->second.ret_code_ == INT64_MAX) {
|
||||||
const int64_t child_task_id = iter->second.task_id_;
|
// maybe ddl already finish when switching rs
|
||||||
if (iter->second.ret_code_ == INT64_MAX) {
|
HEAP_VAR(ObDDLErrorMessageTableOperator::ObBuildDDLErrorMessage, error_message) {
|
||||||
// maybe ddl already finish when switching rs
|
int64_t unused_user_msg_len = 0;
|
||||||
HEAP_VAR(ObDDLErrorMessageTableOperator::ObBuildDDLErrorMessage, error_message) {
|
if (OB_FAIL(ObDDLErrorMessageTableOperator::get_ddl_error_message(tenant_id_, child_task_id, target_object_id,
|
||||||
int64_t unused_user_msg_len = 0;
|
unused_addr, false /* is_ddl_retry_task */, *GCTX.sql_proxy_, error_message, unused_user_msg_len))) {
|
||||||
if (OB_FAIL(ObDDLErrorMessageTableOperator::get_ddl_error_message(tenant_id_, child_task_id, target_object_id,
|
if (OB_ENTRY_NOT_EXIST == ret) {
|
||||||
unused_addr, false /* is_ddl_retry_task */, *GCTX.sql_proxy_, error_message, unused_user_msg_len))) {
|
ret = OB_SUCCESS;
|
||||||
if (OB_ENTRY_NOT_EXIST == ret) {
|
LOG_INFO("ddl task not finish", K(table_id), K(child_task_id), K(schema_version), K(target_object_id));
|
||||||
ret = OB_SUCCESS;
|
} else {
|
||||||
LOG_INFO("ddl task not finish", K(table_id), K(child_task_id), K(schema_version), K(target_object_id));
|
LOG_WARN("fail to get ddl error message", K(ret), K(table_id), K(child_task_id), K(schema_version), K(target_object_id));
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
LOG_WARN("fail to get ddl error message", K(ret), K(table_id), K(child_task_id), K(schema_version), K(target_object_id));
|
finished_task_cnt++;
|
||||||
}
|
if (error_message.ret_code_ != OB_SUCCESS) {
|
||||||
} else {
|
ret = error_message.ret_code_;
|
||||||
finished_task_cnt++;
|
}
|
||||||
if (error_message.ret_code_ != OB_SUCCESS) {
|
|
||||||
ret = error_message.ret_code_;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
} else {
|
finished_task_cnt++;
|
||||||
finished_task_cnt++;
|
if (iter->second.ret_code_ != OB_SUCCESS) {
|
||||||
if (iter->second.ret_code_ != OB_SUCCESS) {
|
ret = iter->second.ret_code_;
|
||||||
ret = iter->second.ret_code_;
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (finished_task_cnt == dependent_task_result_map_.size()) {
|
||||||
|
if (OB_FAIL(switch_status(next_task_status, ret))) {
|
||||||
|
LOG_WARN("fail to switch status", K(ret));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
if (finished_task_cnt == dependent_task_result_map_.size()) {
|
|
||||||
if (OB_FAIL(switch_status(next_task_status, ret))) {
|
|
||||||
LOG_WARN("fail to switch status", K(ret));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
|
|||||||
Reference in New Issue
Block a user