From 80d4fa3ef0834e7496056af3d73726ffb9dd4890 Mon Sep 17 00:00:00 2001 From: Tim Saucer Date: Fri, 16 May 2025 08:26:43 +0100 Subject: [PATCH] With the update to rustc 1.87 we now fail clippy due to the size of the error type. Work around this by boxing the datafusion error. --- src/errors.rs | 4 ++-- src/expr.rs | 14 ++++++-------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/errors.rs b/src/errors.rs index f1d5aeb23..d4f4f221d 100644 --- a/src/errors.rs +++ b/src/errors.rs @@ -28,7 +28,7 @@ pub type PyDataFusionResult = std::result::Result; #[derive(Debug)] pub enum PyDataFusionError { - ExecutionError(InnerDataFusionError), + ExecutionError(Box), ArrowError(ArrowError), Common(String), PythonError(PyErr), @@ -55,7 +55,7 @@ impl From for PyDataFusionError { impl From for PyDataFusionError { fn from(err: InnerDataFusionError) -> PyDataFusionError { - PyDataFusionError::ExecutionError(err) + PyDataFusionError::ExecutionError(Box::new(err)) } } diff --git a/src/expr.rs b/src/expr.rs index 404e575f8..bc7dbeffd 100644 --- a/src/expr.rs +++ b/src/expr.rs @@ -37,9 +37,7 @@ use datafusion::logical_expr::{ }; use crate::common::data_type::{DataTypeMap, NullTreatment, PyScalarValue, RexType}; -use crate::errors::{ - py_runtime_err, py_type_err, py_unsupported_variant_err, PyDataFusionError, PyDataFusionResult, -}; +use crate::errors::{py_runtime_err, py_type_err, py_unsupported_variant_err, PyDataFusionResult}; use crate::expr::aggregate_expr::PyAggregateFunction; use crate::expr::binary_expr::PyBinaryExpr; use crate::expr::column::PyColumn; @@ -622,11 +620,11 @@ impl PyExpr { order_by, null_treatment, ), - _ => Err( - PyDataFusionError::ExecutionError(datafusion::error::DataFusionError::Plan( - format!("Using {} with `over` is not allowed. Must use an aggregate or window function.", self.expr.variant_name()), - )) - ), + _ => Err(datafusion::error::DataFusionError::Plan(format!( + "Using {} with `over` is not allowed. Must use an aggregate or window function.", + self.expr.variant_name() + )) + .into()), } } }