fix executor core at foreign_key_arg
This commit is contained in:
@ -4235,16 +4235,22 @@ int ObAlterTableResolver::resolve_modify_foreign_key_state(const ParseNode *node
|
||||
const ObColumnSchemaV2 *child_col = NULL;
|
||||
const ObColumnSchemaV2 *parent_col = NULL;
|
||||
for (int64_t i = 0; OB_SUCC(ret) && i < foreign_key_info->child_column_ids_.count(); ++i) {
|
||||
ObString tmp_child_column_name;
|
||||
ObString tmp_parent_column_name;
|
||||
if (OB_ISNULL(child_col = table_schema_->get_column_schema(foreign_key_info->child_column_ids_.at(i)))) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
SQL_RESV_LOG(WARN, "child column schema not exists", K(ret), K(foreign_key_info->child_column_ids_.at(i)));
|
||||
} else if (OB_ISNULL(parent_col = parent_table_schema->get_column_schema(foreign_key_info->parent_column_ids_.at(i)))) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
SQL_RESV_LOG(WARN, "parent column schema not exists", K(ret), K(foreign_key_info->parent_column_ids_.at(i)));
|
||||
} else if (OB_FAIL(foreign_key_arg.child_columns_.push_back(child_col->get_column_name_str()))) {
|
||||
SQL_RESV_LOG(WARN, "push back failed", K(ret), K(child_col->get_column_name_str()));
|
||||
} else if (OB_FAIL(foreign_key_arg.parent_columns_.push_back(parent_col->get_column_name_str()))) {
|
||||
SQL_RESV_LOG(WARN, "push back failed", K(ret), K(parent_col->get_column_name_str()));
|
||||
} else if (OB_FAIL(ob_write_string(*allocator_, child_col->get_column_name_str(), tmp_child_column_name))) {
|
||||
SQL_RESV_LOG(WARN, "deep copy parent database name failed", K(ret), K(child_col->get_column_name_str()));
|
||||
} else if (OB_FAIL(ob_write_string(*allocator_, parent_col->get_column_name_str(), tmp_parent_column_name))) {
|
||||
SQL_RESV_LOG(WARN, "deep copy parent table name failed", K(ret), K(parent_col->get_column_name_str()));
|
||||
} else if (OB_FAIL(foreign_key_arg.child_columns_.push_back(tmp_child_column_name))) {
|
||||
SQL_RESV_LOG(WARN, "push back failed", K(ret), K(tmp_child_column_name));
|
||||
} else if (OB_FAIL(foreign_key_arg.parent_columns_.push_back(tmp_parent_column_name))) {
|
||||
SQL_RESV_LOG(WARN, "push back failed", K(ret), K(tmp_parent_column_name));
|
||||
}
|
||||
}
|
||||
if (OB_FAIL(ret)) {
|
||||
|
||||
Reference in New Issue
Block a user