fix get query range node for table location bug
This commit is contained in:
		| @ -2432,11 +2432,7 @@ int ObTableLocation::get_location_calc_node(const ObPartitionLevel part_level, | ||||
|       if (OB_FAIL(analyze_filter(partition_columns, partition_expr, column_id, filter_exprs.at(idx), | ||||
|                                  always_true, calc_node, cnt_func_expr, dtc_params, exec_ctx))) { | ||||
|         LOG_WARN("Failed to analyze filter", K(ret)); | ||||
|       } else { | ||||
|         if (!always_true && NULL != calc_node) { | ||||
|           func_always_true = false; | ||||
|         } | ||||
|         if (!cnt_func_expr) { | ||||
|       } else if (!cnt_func_expr) { | ||||
|         if (OB_FAIL(normal_filters.push_back(filter_exprs.at(idx)))) { | ||||
|           LOG_WARN("Failed to add filter", K(ret)); | ||||
|         } | ||||
| @ -2446,14 +2442,15 @@ int ObTableLocation::get_location_calc_node(const ObPartitionLevel part_level, | ||||
|         LOG_WARN("Failed to add and node", K(ret)); | ||||
|       } else { | ||||
|         is_func_range_get = true; | ||||
|         } | ||||
|         func_always_true &= always_true || NULL == calc_node; | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     if (OB_SUCC(ret)) { | ||||
|       bool column_always_true = false; | ||||
|       bool column_always_true = true; | ||||
|       ObPartLocCalcNode *column_node = NULL; | ||||
|       if (normal_filters.count() > 0) { | ||||
|         column_always_true = false; | ||||
|         if (OB_FAIL(get_query_range_node(part_level, partition_columns, filter_exprs, column_always_true, | ||||
|                                          column_node, dtc_params, exec_ctx, is_in_range_optimization_enabled))) { | ||||
|           LOG_WARN("Failed to get query range node", K(ret)); | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 obdev
					obdev