From 03eacc27bd9f6b2f003331827e85d5e4689b4c56 Mon Sep 17 00:00:00 2001 From: RIchard Baah Date: Mon, 14 Sep 2026 23:37:10 -0400 Subject: [PATCH 1/2] v1 --- datafusion/pruning/src/pruning_predicate.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/datafusion/pruning/src/pruning_predicate.rs b/datafusion/pruning/src/pruning_predicate.rs index b49b72058e0cd..b3f905c6b03ef 100644 --- a/datafusion/pruning/src/pruning_predicate.rs +++ b/datafusion/pruning/src/pruning_predicate.rs @@ -1792,8 +1792,9 @@ fn build_predicate_expression( } else { Operator::Or }; - let change_expr = in_list - .list() + let mut sorted_list: Vec<_> = in_list.list().to_vec(); + sorted_list.sort_by_key(|a| a.to_string()); + let change_expr = sorted_list .iter() .map(|e| { Arc::new(phys_expr::BinaryExpr::new( From 7f403570a1521e3f28dd81bfdf76e9e98fc3a632 Mon Sep 17 00:00:00 2001 From: RIchard Baah Date: Tue, 15 Sep 2026 16:18:13 -0400 Subject: [PATCH 2/2] fix: use sort_by_cached_key to avoid redundant to_string calls --- datafusion/pruning/src/pruning_predicate.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/datafusion/pruning/src/pruning_predicate.rs b/datafusion/pruning/src/pruning_predicate.rs index b3f905c6b03ef..d2fcaff809e11 100644 --- a/datafusion/pruning/src/pruning_predicate.rs +++ b/datafusion/pruning/src/pruning_predicate.rs @@ -1793,7 +1793,7 @@ fn build_predicate_expression( Operator::Or }; let mut sorted_list: Vec<_> = in_list.list().to_vec(); - sorted_list.sort_by_key(|a| a.to_string()); + sorted_list.sort_by_cached_key(|a| a.to_string()); let change_expr = sorted_list .iter() .map(|e| {