remove get_method array from query range extraction
This commit is contained in:
@ -2316,33 +2316,14 @@ int ObSQLUtils::extract_pre_query_range(const ObQueryRange &pre_query_range,
|
||||
ObIAllocator &allocator,
|
||||
ObExecContext &exec_ctx,
|
||||
ObQueryRangeArray &key_ranges,
|
||||
ObGetMethodArray get_method,
|
||||
const ObDataTypeCastParams &dtc_params)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
if (OB_LIKELY(!pre_query_range.need_deep_copy())) {
|
||||
//对于大多数查询来说,query条件是非常规范和工整的,这种条件我们不需要拷贝进行graph的变化,可以直接提取
|
||||
if (OB_FAIL(pre_query_range.get_tablet_ranges(allocator,
|
||||
exec_ctx,
|
||||
key_ranges,
|
||||
get_method,
|
||||
dtc_params))) {
|
||||
LOG_WARN("fail to get tablet ranges", K(ret));
|
||||
}
|
||||
} else {
|
||||
ObQueryRange final_query_range(allocator);
|
||||
if (OB_FAIL(final_query_range.deep_copy(pre_query_range, true))) {
|
||||
// MUST deep copy to make it thread safe
|
||||
LOG_WARN("fail to create final query range", K(ret), K(pre_query_range));
|
||||
} else if (OB_FAIL(final_query_range.final_extract_query_range(exec_ctx, dtc_params))) {
|
||||
LOG_WARN("fail to final extract query range", K(ret), K(final_query_range));
|
||||
} else if (OB_FAIL(final_query_range.get_tablet_ranges(key_ranges,
|
||||
get_method,
|
||||
dtc_params))) {
|
||||
LOG_WARN("fail to get tablet ranges from query range", K(ret), K(final_query_range));
|
||||
} else {
|
||||
// do nothing
|
||||
}
|
||||
bool dummy_all_single_value_ranges = false;
|
||||
if (OB_FAIL(pre_query_range.get_tablet_ranges(allocator, exec_ctx, key_ranges,
|
||||
dummy_all_single_value_ranges,
|
||||
dtc_params))) {
|
||||
LOG_WARN("failed to get tablet ranges", K(ret));
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
@ -2352,17 +2333,17 @@ int ObSQLUtils::extract_geo_query_range(const ObQueryRange &pre_query_range,
|
||||
ObExecContext &exec_ctx,
|
||||
ObQueryRangeArray &key_ranges,
|
||||
ObMbrFilterArray &mbr_filters,
|
||||
ObGetMethodArray get_method,
|
||||
const ObDataTypeCastParams &dtc_params)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
bool dummy_all_single_value_ranges = false;
|
||||
if (OB_LIKELY(!pre_query_range.need_deep_copy())) {
|
||||
//对于大多数查询来说,query条件是非常规范和工整的,这种条件我们不需要拷贝进行graph的变化,可以直接提取
|
||||
if (OB_FAIL(pre_query_range.get_tablet_ranges(allocator,
|
||||
exec_ctx,
|
||||
key_ranges,
|
||||
get_method,
|
||||
dtc_params))) {
|
||||
if (OB_FAIL(pre_query_range.direct_get_tablet_ranges(allocator,
|
||||
exec_ctx,
|
||||
key_ranges,
|
||||
dummy_all_single_value_ranges,
|
||||
dtc_params))) {
|
||||
LOG_WARN("fail to get tablet ranges", K(ret));
|
||||
} else {
|
||||
const MbrFilterArray &pre_filters = pre_query_range.get_mbr_filter();
|
||||
@ -2380,7 +2361,7 @@ int ObSQLUtils::extract_geo_query_range(const ObQueryRange &pre_query_range,
|
||||
} else if (OB_FAIL(final_query_range.final_extract_query_range(exec_ctx, dtc_params))) {
|
||||
LOG_WARN("fail to final extract query range", K(ret), K(final_query_range));
|
||||
} else if (OB_FAIL(final_query_range.get_tablet_ranges(key_ranges,
|
||||
get_method,
|
||||
dummy_all_single_value_ranges,
|
||||
dtc_params))) {
|
||||
LOG_WARN("fail to get tablet ranges from query range", K(ret), K(final_query_range));
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user