提交 dd3b5c62 编写于 作者: T tino247 提交者: ob-robot

Fix unstable list partition order problem

上级 57f09e15
......@@ -4220,10 +4220,10 @@ int ObSchemaRetrieveUtils::fill_base_part_info(
EXTRACT_INT_FIELD_TO_CLASS_MYSQL(result, part_id, partition, int64_t);
}
if (check_deleted) {
if (OB_SUCC(ret) && check_deleted) {
EXTRACT_INT_FIELD_MYSQL(result, "is_deleted", is_deleted, bool);
}
if (!is_deleted) {
if (OB_SUCC(ret) && !is_deleted) {
EXTRACT_INT_FIELD_TO_CLASS_MYSQL(result, schema_version, partition, int64_t);
ObString bhigh_bound_val;
ObString blist_val;
......@@ -4253,12 +4253,26 @@ int ObSchemaRetrieveUtils::fill_base_part_info(
ret = OB_SUCCESS;
} else if (OB_SUCCESS != ret) {
SQL_LOG(WARN, "fail to get varchar column 'b_list_val' of base_part_info.", K(ret));
} else if (OB_FAIL(partition.set_list_vector_values_with_hex_str(blist_val))) {
SHARE_SCHEMA_LOG(WARN, "Failed to set list val to partition", K(ret));
} else {
// bugfix: issue/48579037
// In 4.x, tablegroup_id/table_id is in the same scope, so we can distinguish table and tablegroup based on object_id.
bool is_oracle_mode = false;
if (is_sys_tablegroup_id(table_id)) {
is_oracle_mode = false;
} else if (OB_FAIL(ObCompatModeGetter::check_is_oracle_mode_with_table_id(
tenant_id, table_id, is_oracle_mode))) {
LOG_WARN("fail to check oracle mode", KR(ret), K(tenant_id), K(table_id));
}
lib::CompatModeGuard guard(is_oracle_mode ?
lib::Worker::CompatMode::ORACLE :
lib::Worker::CompatMode::MYSQL);
if (FAILEDx(partition.set_list_vector_values_with_hex_str(blist_val))) {
SHARE_SCHEMA_LOG(WARN, "Failed to set list val to partition", K(ret));
}
}
}
bool ignore_column_error = ObSchemaService::g_ignore_column_retrieve_error_;
if (!(is_subpart_def && is_subpart_template)) {
if (OB_SUCC(ret) && !(is_subpart_def && is_subpart_template)) {
EXTRACT_INT_FIELD_TO_CLASS_MYSQL_WITH_DEFAULT_VALUE(result, tablet_id, partition, uint64_t, true, ignore_column_error, 0);
}
} else { }//do nothing
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册