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