diff --git a/Cargo.toml b/Cargo.toml index 07cce25a86a8..e4869ea97594 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -76,7 +76,7 @@ license = "Apache-2.0" readme = "README.md" repository = "https://github.com/apache/datafusion" # Define Minimum Supported Rust Version (MSRV) -rust-version = "1.86.0" +rust-version = "1.87.0" # Define DataFusion version version = "50.0.0" diff --git a/datafusion/core/src/datasource/file_format/csv.rs b/datafusion/core/src/datasource/file_format/csv.rs index 6c4897f711c5..edbbea97a10e 100644 --- a/datafusion/core/src/datasource/file_format/csv.rs +++ b/datafusion/core/src/datasource/file_format/csv.rs @@ -1233,7 +1233,7 @@ mod tests { fn csv_values(line_number: usize) -> (i32, f64, bool, String) { let int_value = line_number as i32; let float_value = line_number as f64; - let bool_value = line_number % 2 == 0; + let bool_value = line_number.is_multiple_of(2); let char_value = format!("{line_number}-string"); (int_value, float_value, bool_value, char_value) } diff --git a/datafusion/functions-nested/src/planner.rs b/datafusion/functions-nested/src/planner.rs index b7a9b878c69e..f4fa8630a8d3 100644 --- a/datafusion/functions-nested/src/planner.rs +++ b/datafusion/functions-nested/src/planner.rs @@ -108,7 +108,7 @@ impl ExprPlanner for NestedFunctionPlanner { } fn plan_make_map(&self, args: Vec) -> Result>> { - if args.len() % 2 != 0 { + if !args.len().is_multiple_of(2) { return plan_err!("make_map requires an even number of arguments"); } diff --git a/datafusion/functions/src/core/named_struct.rs b/datafusion/functions/src/core/named_struct.rs index c04074b2a8c8..1da5148474f8 100644 --- a/datafusion/functions/src/core/named_struct.rs +++ b/datafusion/functions/src/core/named_struct.rs @@ -104,7 +104,7 @@ impl ScalarUDFImpl for NamedStructFunc { ); } - if args.scalar_arguments.len() % 2 != 0 { + if !args.scalar_arguments.len().is_multiple_of(2) { return exec_err!( "named_struct requires an even number of arguments, got {} instead", args.scalar_arguments.len() diff --git a/datafusion/physical-plan/src/display.rs b/datafusion/physical-plan/src/display.rs index 1cad0ee85c0d..e386f79e428a 100644 --- a/datafusion/physical-plan/src/display.rs +++ b/datafusion/physical-plan/src/display.rs @@ -935,7 +935,7 @@ impl TreeRenderVisitor<'_, '_> { } else { let total_spaces = max_render_width - render_width; let half_spaces = total_spaces / 2; - let extra_left_space = if total_spaces % 2 == 0 { 0 } else { 1 }; + let extra_left_space = if total_spaces.is_multiple_of(2) { 0 } else { 1 }; format!( "{}{}{}", " ".repeat(half_spaces + extra_left_space), diff --git a/datafusion/sql/src/unparser/expr.rs b/datafusion/sql/src/unparser/expr.rs index ee65ce6ed2f2..8f5b9cef089e 100644 --- a/datafusion/sql/src/unparser/expr.rs +++ b/datafusion/sql/src/unparser/expr.rs @@ -606,7 +606,7 @@ impl Unparser<'_> { } fn named_struct_to_sql(&self, args: &[Expr]) -> Result { - if args.len() % 2 != 0 { + if !args.len().is_multiple_of(2) { return internal_err!("named_struct must have an even number of arguments"); } diff --git a/docs/source/library-user-guide/upgrading.md b/docs/source/library-user-guide/upgrading.md index 8dff162d8873..1db74a45a0ce 100644 --- a/docs/source/library-user-guide/upgrading.md +++ b/docs/source/library-user-guide/upgrading.md @@ -27,6 +27,12 @@ You can see the current [status of the `51.0.0 `release here](https://github.com ## DataFusion `50.0.0` +### `MSRV` updated to 1.87.0 + +The Minimum Supported Rust Version (MSRV) has been updated to [`1.87.0`]. + +[`1.87.0`]: https://releases.rs/docs/1.87.0/ + ### ListingTable automatically detects Hive Partitioned tables DataFusion 50.0.0 automatically infers Hive partitions when using the `ListingTableFactory` and `CREATE EXTERNAL TABLE`. Previously,