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
	 obdev
					obdev