Fix core of missing reset nlj's server_list_ to random in px random shuffle scenario
This commit is contained in:
parent
ae990565ed
commit
3aecb7da09
@ -7490,13 +7490,22 @@ int JoinPath::compute_join_path_parallel_and_server_info(ObOptimizerContext *opt
|
||||
if (OB_FAIL(server_list.push_back(local_server_addr))) {
|
||||
LOG_WARN("failed to assign server list", K(ret));
|
||||
}
|
||||
} else if (DistAlgo::DIST_NONE_ALL == join_dist_algo ||
|
||||
DistAlgo::DIST_RANDOM_ALL == join_dist_algo) {
|
||||
} else if (DistAlgo::DIST_NONE_ALL == join_dist_algo) {
|
||||
parallel = left_path->parallel_;
|
||||
server_cnt = left_path->server_cnt_;
|
||||
if (OB_FAIL(server_list.assign(left_path->server_list_))) {
|
||||
LOG_WARN("failed to assign server list", K(ret));
|
||||
}
|
||||
} else if (DistAlgo::DIST_RANDOM_ALL == join_dist_algo) {
|
||||
common::ObAddr all_server_list;
|
||||
// like hash_hash, a special ALL server list indicating we would use all servers of this sql relate
|
||||
all_server_list.set_max();
|
||||
if (OB_FAIL(server_list.push_back(all_server_list))) {
|
||||
LOG_WARN("failed to assign all server list", K(ret));
|
||||
} else {
|
||||
parallel = left_path->parallel_;
|
||||
server_cnt = left_path->server_cnt_;
|
||||
}
|
||||
} else if (DistAlgo::DIST_ALL_NONE == join_dist_algo) {
|
||||
parallel = right_path->parallel_;
|
||||
server_cnt = right_path->server_cnt_;
|
||||
|
@ -821,6 +821,14 @@ int ObLogSubPlanFilter::compute_op_parallel_and_server_info()
|
||||
int ret = OB_SUCCESS;
|
||||
if (OB_FAIL(compute_normal_multi_child_parallel_and_server_info())) {
|
||||
LOG_WARN("failed to compute multi child parallel and server info", K(ret), K(get_distributed_algo()));
|
||||
} else if (dist_algo_ == DistAlgo::DIST_RANDOM_ALL) {
|
||||
get_server_list().reuse();
|
||||
common::ObAddr all_server_list;
|
||||
// like hash_hash, a special ALL server list indicating we would use all servers of this sql relate
|
||||
all_server_list.set_max();
|
||||
if (OB_FAIL(get_server_list().push_back(all_server_list))) {
|
||||
LOG_WARN("failed to assign all server list", K(ret));
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user