[CP] 对inner table放开column_store_only路由策略检查

This commit is contained in:
zzg19950727 2024-10-08 19:46:23 +00:00 committed by ob-robot
parent 7e54a9117e
commit d22b2f7f2e
3 changed files with 7 additions and 3 deletions

View File

@ -864,7 +864,8 @@ int ObLogPlan::weak_select_replicas(const ObAddr &local_server,
} else if (OB_FAIL(route_policy.calculate_replica_priority(local_server,
phy_part_loc_info.get_ls_id(),
replica_array,
route_policy_ctx))) {
route_policy_ctx,
is_inner_table(phy_tbl_loc_info->get_ref_table_id())))) {
LOG_WARN("fail to calculate replica priority", K(replica_array), K(route_policy_ctx), K(ret));
} else if (OB_FAIL(route_policy.select_replica_with_priority(route_policy_ctx, replica_array, phy_part_loc_info))) {
LOG_WARN("fail to select replica", K(replica_array), K(ret));

View File

@ -123,7 +123,8 @@ int ObRoutePolicy::filter_replica(const ObAddr &local_server,
int ObRoutePolicy::calculate_replica_priority(const ObAddr &local_server,
const ObLSID &ls_id,
ObIArray<CandidateReplica>& candi_replicas,
ObRoutePolicyCtx &ctx)
ObRoutePolicyCtx &ctx,
bool is_inner_table)
{
int ret = OB_SUCCESS;
if (OB_UNLIKELY(!is_inited_)) {
@ -133,6 +134,7 @@ int ObRoutePolicy::calculate_replica_priority(const ObAddr &local_server,
ObRoutePolicyType policy_type = get_calc_route_policy_type(ctx);
if (1 == candi_replicas.count() &&
policy_type == COLUMN_STORE_ONLY &&
!is_inner_table &&
!ObReplicaTypeCheck::is_columnstore_replica(candi_replicas.at(0).get_replica_type())) {
ret = OB_NO_REPLICA_VALID;
LOG_USER_ERROR(OB_NO_REPLICA_VALID);

View File

@ -178,7 +178,8 @@ public:
int calculate_replica_priority(const ObAddr &local_server,
const share::ObLSID &ls_id,
common::ObIArray<CandidateReplica>& candi_replicas,
ObRoutePolicyCtx &ctx);
ObRoutePolicyCtx &ctx,
bool is_inner_table = false);
int init_candidate_replicas(common::ObIArray<CandidateReplica> &candi_replicas);
int select_replica_with_priority(const ObRoutePolicyCtx &route_policy_ctx,
const common::ObIArray<CandidateReplica> &replica_array,