diff --git a/Cargo.toml b/Cargo.toml index b26f8163bc86..ddbf87f44e2a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -129,7 +129,7 @@ futures = "0.3" half = { version = "2.2.1", default-features = false } hashbrown = { version = "0.14.5", features = ["raw"] } indexmap = "2.0.0" -itertools = "0.13" +itertools = "0.14" log = "^0.4" object_store = { version = "0.11.0", default-features = false } parking_lot = "0.12" diff --git a/datafusion-cli/Cargo.lock b/datafusion-cli/Cargo.lock index 92dcf24708c6..5048f7fcea05 100644 --- a/datafusion-cli/Cargo.lock +++ b/datafusion-cli/Cargo.lock @@ -1263,7 +1263,7 @@ dependencies = [ "flate2", "futures", "glob", - "itertools", + "itertools 0.14.0", "log", "num-traits", "object_store", @@ -1404,7 +1404,7 @@ version = "44.0.0" dependencies = [ "arrow", "datafusion-common", - "itertools", + "itertools 0.14.0", ] [[package]] @@ -1425,7 +1425,7 @@ dependencies = [ "datafusion-macros", "hashbrown 0.14.5", "hex", - "itertools", + "itertools 0.14.0", "log", "md-5", "rand", @@ -1483,7 +1483,7 @@ dependencies = [ "datafusion-functions-aggregate", "datafusion-macros", "datafusion-physical-expr-common", - "itertools", + "itertools 0.14.0", "log", "paste", ] @@ -1543,7 +1543,7 @@ dependencies = [ "datafusion-expr", "datafusion-physical-expr", "indexmap", - "itertools", + "itertools 0.14.0", "log", "recursive", "regex", @@ -1567,7 +1567,7 @@ dependencies = [ "half", "hashbrown 0.14.5", "indexmap", - "itertools", + "itertools 0.14.0", "log", "paste", "petgraph", @@ -1582,7 +1582,7 @@ dependencies = [ "datafusion-common", "datafusion-expr-common", "hashbrown 0.14.5", - "itertools", + "itertools 0.14.0", ] [[package]] @@ -1595,7 +1595,7 @@ dependencies = [ "datafusion-expr-common", "datafusion-physical-expr", "datafusion-physical-plan", - "itertools", + "itertools 0.14.0", "log", "recursive", ] @@ -1623,7 +1623,7 @@ dependencies = [ "half", "hashbrown 0.14.5", "indexmap", - "itertools", + "itertools 0.14.0", "log", "parking_lot", "pin-project-lite", @@ -2430,6 +2430,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.14" @@ -2810,7 +2819,7 @@ dependencies = [ "futures", "humantime", "hyper 1.5.2", - "itertools", + "itertools 0.13.0", "md-5", "parking_lot", "percent-encoding", @@ -4391,7 +4400,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] diff --git a/datafusion/core/src/physical_optimizer/enforce_distribution.rs b/datafusion/core/src/physical_optimizer/enforce_distribution.rs index 3c8d08ee32d4..c44200a492eb 100644 --- a/datafusion/core/src/physical_optimizer/enforce_distribution.rs +++ b/datafusion/core/src/physical_optimizer/enforce_distribution.rs @@ -1208,7 +1208,7 @@ fn ensure_distribution( // We store the updated children in `new_children`. let children = izip!( children.into_iter(), - plan.required_input_ordering().iter(), + plan.required_input_ordering(), plan.maintains_input_order(), repartition_status_flags.into_iter() ) @@ -1275,7 +1275,7 @@ fn ensure_distribution( let ordering_satisfied = child .plan .equivalence_properties() - .ordering_satisfy_requirement(required_input_ordering); + .ordering_satisfy_requirement(&required_input_ordering); if (!ordering_satisfied || !order_preserving_variants_desirable) && child.data { diff --git a/datafusion/core/src/physical_optimizer/sanity_checker.rs b/datafusion/core/src/physical_optimizer/sanity_checker.rs index b6d22320d086..f4b0f7c6069b 100644 --- a/datafusion/core/src/physical_optimizer/sanity_checker.rs +++ b/datafusion/core/src/physical_optimizer/sanity_checker.rs @@ -131,18 +131,18 @@ pub fn check_plan_sanity( check_finiteness_requirements(Arc::clone(&plan), optimizer_options)?; for ((idx, child), sort_req, dist_req) in izip!( - plan.children().iter().enumerate(), - plan.required_input_ordering().iter(), - plan.required_input_distribution().iter() + plan.children().into_iter().enumerate(), + plan.required_input_ordering(), + plan.required_input_distribution(), ) { let child_eq_props = child.equivalence_properties(); if let Some(sort_req) = sort_req { - if !child_eq_props.ordering_satisfy_requirement(sort_req) { + if !child_eq_props.ordering_satisfy_requirement(&sort_req) { let plan_str = get_plan_string(&plan); return plan_err!( "Plan: {:?} does not satisfy order requirements: {}. Child-{} order: {}", plan_str, - format_physical_sort_requirement_list(sort_req), + format_physical_sort_requirement_list(&sort_req), idx, child_eq_props.oeq_class ); @@ -151,7 +151,7 @@ pub fn check_plan_sanity( if !child .output_partitioning() - .satisfy(dist_req, child_eq_props) + .satisfy(&dist_req, child_eq_props) { let plan_str = get_plan_string(&plan); return plan_err!(