[CP] fix in expr produce duplicated ranges without in optimization

This commit is contained in:
Larry955 2023-06-15 11:42:27 +00:00 committed by ob-robot
parent cf821e4d1a
commit 1511bfcffa

View File

@ -2719,18 +2719,11 @@ int ObQueryRange::pre_extract_single_in_op(const ObOpRawExpr *b_expr,
out_key_part = find_false;
}
query_range_ctx_->cur_expr_is_precise_ = cur_in_is_precise;
int64_t max_pos = -1;
int64_t cur_pos = out_key_part->pos_.offset_;
bool is_strict_equal = true;
if (OB_FAIL(is_strict_equal_graph(out_key_part, cur_pos, max_pos, is_strict_equal))) {
LOG_WARN("is trict equal graph failed", K(ret));
} else if (NULL != out_key_part && !is_strict_equal) {
ObKeyPartList key_part_list;
if (OB_FAIL(split_or(out_key_part, key_part_list))) {
LOG_WARN("split temp_result to or_list failed", K(ret));
} else if (OB_FAIL(or_range_graph(key_part_list, NULL, out_key_part, dtc_params))) {
LOG_WARN("or range graph failed", K(ret));
}
ObKeyPartList key_part_list;
if (OB_FAIL(split_or(out_key_part, key_part_list))) {
LOG_WARN("split temp_result to or_list failed", K(ret));
} else if (OB_FAIL(or_range_graph(key_part_list, NULL, out_key_part, dtc_params))) {
LOG_WARN("or range graph failed", K(ret));
}
}
}