diff --git a/datafusion/pruning/src/pruning_predicate.rs b/datafusion/pruning/src/pruning_predicate.rs index b49b72058e0cd..d2fcaff809e11 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_cached_key(|a| a.to_string()); + let change_expr = sorted_list .iter() .map(|e| { Arc::new(phys_expr::BinaryExpr::new(