diff --git a/datafusion-examples/examples/builtin_functions/function_factory.rs b/datafusion-examples/examples/builtin_functions/function_factory.rs index 106c53cdf7f12..3cc77371d44ce 100644 --- a/datafusion-examples/examples/builtin_functions/function_factory.rs +++ b/datafusion-examples/examples/builtin_functions/function_factory.rs @@ -118,10 +118,6 @@ struct ScalarFunctionWrapper { } impl ScalarUDFImpl for ScalarFunctionWrapper { - fn as_any(&self) -> &dyn std::any::Any { - self - } - fn name(&self) -> &str { &self.name } diff --git a/datafusion-examples/examples/data_io/json_shredding.rs b/datafusion-examples/examples/data_io/json_shredding.rs index ca1513f626245..a6d328a39680a 100644 --- a/datafusion-examples/examples/data_io/json_shredding.rs +++ b/datafusion-examples/examples/data_io/json_shredding.rs @@ -17,7 +17,6 @@ //! See `main.rs` for how to run it. -use std::any::Any; use std::sync::Arc; use arrow::array::{RecordBatch, StringArray}; @@ -207,10 +206,6 @@ impl Default for JsonGetStr { } impl ScalarUDFImpl for JsonGetStr { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "json_get_str" } diff --git a/datafusion-examples/examples/query_planning/optimizer_rule.rs b/datafusion-examples/examples/query_planning/optimizer_rule.rs index de9de7737a6a0..67683b7fe2827 100644 --- a/datafusion-examples/examples/query_planning/optimizer_rule.rs +++ b/datafusion-examples/examples/query_planning/optimizer_rule.rs @@ -28,7 +28,6 @@ use datafusion::logical_expr::{ use datafusion::optimizer::ApplyOrder; use datafusion::optimizer::{OptimizerConfig, OptimizerRule}; use datafusion::prelude::SessionContext; -use std::any::Any; use std::sync::Arc; /// This example demonstrates how to add your own [`OptimizerRule`] @@ -190,10 +189,6 @@ impl MyEq { } impl ScalarUDFImpl for MyEq { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "my_eq" } diff --git a/datafusion-examples/examples/udf/advanced_udf.rs b/datafusion-examples/examples/udf/advanced_udf.rs index a00a7e7df434f..d3815459dba52 100644 --- a/datafusion-examples/examples/udf/advanced_udf.rs +++ b/datafusion-examples/examples/udf/advanced_udf.rs @@ -17,7 +17,6 @@ //! See `main.rs` for how to run it. -use std::any::Any; use std::sync::Arc; use arrow::array::{ @@ -66,10 +65,6 @@ impl PowUdf { impl ScalarUDFImpl for PowUdf { /// We implement as_any so that we can downcast the ScalarUDFImpl trait object - fn as_any(&self) -> &dyn Any { - self - } - /// Return the name of this function fn name(&self) -> &str { "pow" diff --git a/datafusion-examples/examples/udf/async_udf.rs b/datafusion-examples/examples/udf/async_udf.rs index 3d8faf623d439..43b82c398c5c6 100644 --- a/datafusion-examples/examples/udf/async_udf.rs +++ b/datafusion-examples/examples/udf/async_udf.rs @@ -23,7 +23,7 @@ //! making network requests. This can be used for tasks like fetching //! data from an external API such as a LLM service or an external database. -use std::{any::Any, sync::Arc}; +use std::sync::Arc; use arrow::array::{ArrayRef, BooleanArray, Int64Array, RecordBatch, StringArray}; use arrow_schema::{DataType, Field, Schema}; @@ -160,10 +160,6 @@ impl AskLLM { /// information for the function, such as its name, signature, and return type. /// [async_trait] impl ScalarUDFImpl for AskLLM { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "ask_llm" } diff --git a/datafusion/core/tests/fuzz_cases/equivalence/utils.rs b/datafusion/core/tests/fuzz_cases/equivalence/utils.rs index 580a226721083..e8e4ea8b6223a 100644 --- a/datafusion/core/tests/fuzz_cases/equivalence/utils.rs +++ b/datafusion/core/tests/fuzz_cases/equivalence/utils.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::cmp::Ordering; use std::sync::Arc; @@ -531,9 +530,6 @@ impl TestScalarUDF { } impl ScalarUDFImpl for TestScalarUDF { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { "test-scalar-udf" } diff --git a/datafusion/core/tests/physical_optimizer/projection_pushdown.rs b/datafusion/core/tests/physical_optimizer/projection_pushdown.rs index 00e016ae02cad..d3448062d1062 100644 --- a/datafusion/core/tests/physical_optimizer/projection_pushdown.rs +++ b/datafusion/core/tests/physical_optimizer/projection_pushdown.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::compute::SortOptions; @@ -79,10 +78,6 @@ impl DummyUDF { } impl ScalarUDFImpl for DummyUDF { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "dummy_udf" } diff --git a/datafusion/core/tests/user_defined/user_defined_async_scalar_functions.rs b/datafusion/core/tests/user_defined/user_defined_async_scalar_functions.rs index 31af4445ace08..58a5cb803982b 100644 --- a/datafusion/core/tests/user_defined/user_defined_async_scalar_functions.rs +++ b/datafusion/core/tests/user_defined/user_defined_async_scalar_functions.rs @@ -129,10 +129,6 @@ impl TestAsyncUDFImpl { } impl ScalarUDFImpl for TestAsyncUDFImpl { - fn as_any(&self) -> &dyn std::any::Any { - self - } - fn name(&self) -> &str { "test_async_udf" } diff --git a/datafusion/core/tests/user_defined/user_defined_scalar_functions.rs b/datafusion/core/tests/user_defined/user_defined_scalar_functions.rs index 025ee9767c694..b758aeb5209e8 100644 --- a/datafusion/core/tests/user_defined/user_defined_scalar_functions.rs +++ b/datafusion/core/tests/user_defined/user_defined_scalar_functions.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::collections::HashMap; use std::hash::{Hash, Hasher}; use std::sync::Arc; @@ -201,10 +200,6 @@ impl std::fmt::Debug for Simple0ArgsScalarUDF { } impl ScalarUDFImpl for Simple0ArgsScalarUDF { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { &self.name } @@ -511,10 +506,6 @@ impl AddIndexToStringVolatileScalarUDF { } impl ScalarUDFImpl for AddIndexToStringVolatileScalarUDF { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { &self.name } @@ -678,9 +669,6 @@ impl CastToI64UDF { } impl ScalarUDFImpl for CastToI64UDF { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { "cast_to_i64" } @@ -800,9 +788,6 @@ impl TakeUDF { /// Implement a ScalarUDFImpl whose return type is a function of the input values impl ScalarUDFImpl for TakeUDF { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { "take" } @@ -949,10 +934,6 @@ struct ScalarFunctionWrapper { } impl ScalarUDFImpl for ScalarFunctionWrapper { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { &self.name } @@ -1441,10 +1422,6 @@ impl MyRegexUdf { } impl ScalarUDFImpl for MyRegexUdf { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "regex_udf" } @@ -1609,10 +1586,6 @@ impl MetadataBasedUdf { } impl ScalarUDFImpl for MetadataBasedUdf { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { &self.name } @@ -1818,10 +1791,6 @@ impl Default for ExtensionBasedUdf { } } impl ScalarUDFImpl for ExtensionBasedUdf { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { &self.name } @@ -1988,9 +1957,6 @@ async fn test_config_options_work_for_scalar_func() -> Result<()> { } impl ScalarUDFImpl for TestScalarUDF { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { "TestScalarUDF" } @@ -2052,10 +2018,6 @@ async fn test_extension_metadata_preserve_in_sql_values() -> Result<()> { } impl ScalarUDFImpl for MakeExtension { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "make_extension" } @@ -2133,10 +2095,6 @@ async fn test_extension_metadata_preserve_in_subquery() -> Result<()> { } impl ScalarUDFImpl for ExtensionScalarPredicate { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "extension_predicate" } diff --git a/datafusion/expr/src/async_udf.rs b/datafusion/expr/src/async_udf.rs index 8afdfda68dea0..02a6d2ece8cdb 100644 --- a/datafusion/expr/src/async_udf.rs +++ b/datafusion/expr/src/async_udf.rs @@ -63,7 +63,7 @@ impl PartialEq for AsyncScalarUDF { fn eq(&self, other: &Self) -> bool { // Deconstruct to catch any new fields added in future let Self { inner } = self; - inner.dyn_eq(other.inner.as_any()) + inner.as_ref().dyn_eq(other.inner.as_ref() as &dyn Any) } } impl Eq for AsyncScalarUDF {} @@ -102,10 +102,6 @@ impl AsyncScalarUDF { } impl ScalarUDFImpl for AsyncScalarUDF { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { self.inner.name() } @@ -156,10 +152,6 @@ mod tests { } impl ScalarUDFImpl for TestAsyncUDFImpl1 { - fn as_any(&self) -> &dyn std::any::Any { - self - } - fn name(&self) -> &str { todo!() } @@ -193,10 +185,6 @@ mod tests { } impl ScalarUDFImpl for TestAsyncUDFImpl2 { - fn as_any(&self) -> &dyn std::any::Any { - self - } - fn name(&self) -> &str { todo!() } diff --git a/datafusion/expr/src/expr.rs b/datafusion/expr/src/expr.rs index 5c6acd480e9ef..f047ff98c4331 100644 --- a/datafusion/expr/src/expr.rs +++ b/datafusion/expr/src/expr.rs @@ -3623,7 +3623,6 @@ mod test { use arrow::datatypes::{Field, Schema}; use sqlparser::ast; use sqlparser::ast::{Ident, IdentWithAlias}; - use std::any::Any; #[test] fn infer_placeholder_in_clause() { @@ -3868,9 +3867,6 @@ mod test { signature: Signature, } impl ScalarUDFImpl for TestScalarUDF { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { "TestScalarUDF" } @@ -4103,10 +4099,6 @@ mod test { #[derive(Debug, PartialEq, Eq, Hash)] struct TestUDF {} impl ScalarUDFImpl for TestUDF { - fn as_any(&self) -> &dyn Any { - unimplemented!() - } - fn name(&self) -> &str { unimplemented!() } diff --git a/datafusion/expr/src/expr_fn.rs b/datafusion/expr/src/expr_fn.rs index 4254602d7c555..31c209b7f23e2 100644 --- a/datafusion/expr/src/expr_fn.rs +++ b/datafusion/expr/src/expr_fn.rs @@ -478,10 +478,6 @@ impl SimpleScalarUDF { } impl ScalarUDFImpl for SimpleScalarUDF { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { &self.name } diff --git a/datafusion/expr/src/udf.rs b/datafusion/expr/src/udf.rs index 9286dd30b11a7..418dc9660614a 100644 --- a/datafusion/expr/src/udf.rs +++ b/datafusion/expr/src/udf.rs @@ -67,7 +67,7 @@ pub struct ScalarUDF { impl PartialEq for ScalarUDF { fn eq(&self, other: &Self) -> bool { - self.inner.dyn_eq(other.inner.as_any()) + self.inner.as_ref().dyn_eq(other.inner.as_ref() as &dyn Any) } } @@ -360,7 +360,7 @@ impl ScalarUDF { /// Return true if this function is an async function pub fn as_async(&self) -> Option<&AsyncScalarUDF> { - self.inner().as_any().downcast_ref::() + (self.inner().as_ref() as &dyn Any).downcast_ref::() } /// Returns placement information for this function. @@ -471,7 +471,6 @@ pub struct ReturnFieldArgs<'a> { /// /// /// Implement the ScalarUDFImpl trait for AddOne /// impl ScalarUDFImpl for AddOne { -/// fn as_any(&self) -> &dyn Any { self } /// fn name(&self) -> &str { "add_one" } /// fn signature(&self) -> &Signature { &self.signature } /// fn return_type(&self, args: &[DataType]) -> Result { @@ -495,10 +494,7 @@ pub struct ReturnFieldArgs<'a> { /// // Call the function `add_one(col)` /// let expr = add_one.call(vec![col("a")]); /// ``` -pub trait ScalarUDFImpl: Debug + DynEq + DynHash + Send + Sync { - /// Returns this object as an [`Any`] trait object - fn as_any(&self) -> &dyn Any; - +pub trait ScalarUDFImpl: Debug + DynEq + DynHash + Send + Sync + Any { /// Returns this function's name fn name(&self) -> &str; @@ -1012,10 +1008,6 @@ impl AliasedScalarUDFImpl { #[warn(clippy::missing_trait_methods)] // Delegates, so it should implement every single trait method impl ScalarUDFImpl for AliasedScalarUDFImpl { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { self.inner.name() } @@ -1132,10 +1124,6 @@ mod tests { signature: Signature, } impl ScalarUDFImpl for TestScalarUDFImpl { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { self.name } diff --git a/datafusion/expr/src/udf_eq.rs b/datafusion/expr/src/udf_eq.rs index 30cfb1d831fde..b4686384ad4a5 100644 --- a/datafusion/expr/src/udf_eq.rs +++ b/datafusion/expr/src/udf_eq.rs @@ -16,6 +16,7 @@ // under the License. use crate::{AggregateUDFImpl, ScalarUDFImpl, WindowUDFImpl}; +use std::any::Any; use std::fmt::Debug; use std::hash::{DefaultHasher, Hash, Hasher}; use std::ops::Deref; @@ -83,7 +84,7 @@ trait UdfPointer: Deref { impl UdfPointer for Arc { fn equals(&self, other: &(dyn ScalarUDFImpl + '_)) -> bool { - self.as_ref().dyn_eq(other.as_any()) + self.as_ref().dyn_eq(other as &dyn Any) } fn hash_value(&self) -> u64 { @@ -124,7 +125,6 @@ mod tests { use arrow::datatypes::DataType; use datafusion_expr_common::columnar_value::ColumnarValue; use datafusion_expr_common::signature::{Signature, Volatility}; - use std::any::Any; use std::hash::DefaultHasher; #[derive(Debug, PartialEq, Eq, Hash)] @@ -133,10 +133,6 @@ mod tests { name: &'static str, } impl ScalarUDFImpl for TestScalarUDF { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { self.name } diff --git a/datafusion/ffi/src/proto/logical_extension_codec.rs b/datafusion/ffi/src/proto/logical_extension_codec.rs index 3781a40539ed1..04aa5bd7c7dc1 100644 --- a/datafusion/ffi/src/proto/logical_extension_codec.rs +++ b/datafusion/ffi/src/proto/logical_extension_codec.rs @@ -482,6 +482,7 @@ impl LogicalExtensionCodec for ForeignLogicalExtensionCodec { #[cfg(test)] mod tests { + use std::any::Any; use std::sync::Arc; use arrow::array::record_batch; @@ -651,7 +652,7 @@ mod tests { let returned_udf = foreign_codec.try_decode_udf(udf.name(), &bytes)?; - assert!(returned_udf.inner().as_any().is::()); + assert!((returned_udf.inner().as_ref() as &dyn Any).is::()); Ok(()) } diff --git a/datafusion/ffi/src/proto/physical_extension_codec.rs b/datafusion/ffi/src/proto/physical_extension_codec.rs index 0577e72366478..d49711cb07ef6 100644 --- a/datafusion/ffi/src/proto/physical_extension_codec.rs +++ b/datafusion/ffi/src/proto/physical_extension_codec.rs @@ -407,6 +407,7 @@ impl PhysicalExtensionCodec for ForeignPhysicalExtensionCodec { #[cfg(test)] pub(crate) mod tests { + use std::any::Any; use std::sync::Arc; use arrow_schema::{DataType, Field, Schema}; @@ -489,7 +490,7 @@ pub(crate) mod tests { buf.push(Self::MAGIC_NUMBER); let udf = node.inner(); - if !udf.as_any().is::() { + if !(udf.as_ref() as &dyn Any).is::() { return exec_err!("TestExtensionCodec only expects Abs UDF"); }; @@ -605,7 +606,7 @@ pub(crate) mod tests { let returned_udf = foreign_codec.try_decode_udf(udf.name(), &bytes)?; - assert!(returned_udf.inner().as_any().is::()); + assert!((returned_udf.inner().as_ref() as &dyn Any).is::()); Ok(()) } diff --git a/datafusion/ffi/src/tests/udf_udaf_udwf.rs b/datafusion/ffi/src/tests/udf_udaf_udwf.rs index d88ddfb28dd56..30b6290d8dd3d 100644 --- a/datafusion/ffi/src/tests/udf_udaf_udwf.rs +++ b/datafusion/ffi/src/tests/udf_udaf_udwf.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow_schema::DataType; @@ -48,10 +47,6 @@ pub(crate) extern "C" fn create_ffi_abs_func() -> FFI_ScalarUDF { struct WrappedAbs(Arc); impl ScalarUDFImpl for WrappedAbs { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "ffi_abs" } diff --git a/datafusion/ffi/src/udf/mod.rs b/datafusion/ffi/src/udf/mod.rs index 94be5f38eab0b..9a43bfe8e4344 100644 --- a/datafusion/ffi/src/udf/mod.rs +++ b/datafusion/ffi/src/udf/mod.rs @@ -330,10 +330,6 @@ impl From<&FFI_ScalarUDF> for Arc { } impl ScalarUDFImpl for ForeignScalarUDF { - fn as_any(&self) -> &dyn std::any::Any { - self - } - fn name(&self) -> &str { &self.name } @@ -433,6 +429,7 @@ impl ScalarUDFImpl for ForeignScalarUDF { #[cfg(test)] mod tests { use super::*; + use std::any::Any; #[test] fn test_round_trip_scalar_udf() -> Result<()> { @@ -459,14 +456,17 @@ mod tests { // Verify local libraries can be downcast to their original let foreign_udf: Arc = (&ffi_udf).into(); - assert!(foreign_udf.as_any().downcast_ref::().is_some()); + assert!( + (foreign_udf.as_ref() as &dyn Any) + .downcast_ref::() + .is_some() + ); // Verify different library markers generate foreign providers ffi_udf.library_marker_id = crate::mock_foreign_marker_id; let foreign_udf: Arc = (&ffi_udf).into(); assert!( - foreign_udf - .as_any() + (foreign_udf.as_ref() as &dyn Any) .downcast_ref::() .is_some() ); diff --git a/datafusion/functions-nested/src/array_has.rs b/datafusion/functions-nested/src/array_has.rs index 76cf786c954dc..6bfb3355b3246 100644 --- a/datafusion/functions-nested/src/array_has.rs +++ b/datafusion/functions-nested/src/array_has.rs @@ -41,7 +41,6 @@ use crate::make_array::make_array_udf; use crate::utils::make_scalar_function; use hashbrown::HashSet; -use std::any::Any; use std::sync::Arc; // Create static instances of ScalarUDFs for each function @@ -111,9 +110,6 @@ impl ArrayHas { } impl ScalarUDFImpl for ArrayHas { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { "array_has" } @@ -764,9 +760,6 @@ impl ArrayHasAll { } impl ScalarUDFImpl for ArrayHasAll { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { "array_has_all" } @@ -838,9 +831,6 @@ impl ArrayHasAny { } impl ScalarUDFImpl for ArrayHasAny { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { "array_has_any" } diff --git a/datafusion/functions-nested/src/arrays_zip.rs b/datafusion/functions-nested/src/arrays_zip.rs index 2ac30d07046e2..879f4762882d3 100644 --- a/datafusion/functions-nested/src/arrays_zip.rs +++ b/datafusion/functions-nested/src/arrays_zip.rs @@ -32,7 +32,6 @@ use datafusion_expr::{ ColumnarValue, Documentation, ScalarUDFImpl, Signature, Volatility, }; use datafusion_macros::user_doc; -use std::any::Any; use std::sync::Arc; /// Type-erased view of a list column (works for both List and LargeList). @@ -97,10 +96,6 @@ impl ArraysZip { } impl ScalarUDFImpl for ArraysZip { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "arrays_zip" } diff --git a/datafusion/functions-nested/src/cardinality.rs b/datafusion/functions-nested/src/cardinality.rs index 8953a8568f4af..691dcfd3940a6 100644 --- a/datafusion/functions-nested/src/cardinality.rs +++ b/datafusion/functions-nested/src/cardinality.rs @@ -34,7 +34,6 @@ use datafusion_expr::{ ScalarUDFImpl, Signature, TypeSignature, Volatility, }; use datafusion_macros::user_doc; -use std::any::Any; use std::sync::Arc; make_udf_expr_and_func!( @@ -90,9 +89,6 @@ impl Default for Cardinality { } } impl ScalarUDFImpl for Cardinality { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { "cardinality" } diff --git a/datafusion/functions-nested/src/concat.rs b/datafusion/functions-nested/src/concat.rs index 78519d2de26c9..368071180c843 100644 --- a/datafusion/functions-nested/src/concat.rs +++ b/datafusion/functions-nested/src/concat.rs @@ -17,7 +17,6 @@ //! [`ScalarUDFImpl`] definitions for `array_append`, `array_prepend` and `array_concat` functions. -use std::any::Any; use std::sync::Arc; use crate::make_array::make_array_inner; @@ -96,10 +95,6 @@ impl ArrayAppend { } impl ScalarUDFImpl for ArrayAppend { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "array_append" } @@ -185,10 +180,6 @@ impl ArrayPrepend { } impl ScalarUDFImpl for ArrayPrepend { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "array_prepend" } @@ -276,10 +267,6 @@ impl ArrayConcat { } impl ScalarUDFImpl for ArrayConcat { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "array_concat" } diff --git a/datafusion/functions-nested/src/dimension.rs b/datafusion/functions-nested/src/dimension.rs index 93fd57afd81c8..1f336117edaed 100644 --- a/datafusion/functions-nested/src/dimension.rs +++ b/datafusion/functions-nested/src/dimension.rs @@ -23,7 +23,6 @@ use arrow::datatypes::{ DataType::{FixedSizeList, LargeList, List, Null, UInt64}, UInt64Type, }; -use std::any::Any; use datafusion_common::cast::{ as_fixed_size_list_array, as_large_list_array, as_list_array, @@ -86,9 +85,6 @@ impl ArrayDims { } impl ScalarUDFImpl for ArrayDims { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { "array_dims" } @@ -158,9 +154,6 @@ impl ArrayNdims { } impl ScalarUDFImpl for ArrayNdims { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { "array_ndims" } diff --git a/datafusion/functions-nested/src/distance.rs b/datafusion/functions-nested/src/distance.rs index f9c42c414423e..d26c2d11e6820 100644 --- a/datafusion/functions-nested/src/distance.rs +++ b/datafusion/functions-nested/src/distance.rs @@ -37,7 +37,6 @@ use datafusion_expr::{ use datafusion_functions::downcast_arg; use datafusion_macros::user_doc; use itertools::Itertools; -use std::any::Any; use std::sync::Arc; make_udf_expr_and_func!( @@ -91,10 +90,6 @@ impl ArrayDistance { } impl ScalarUDFImpl for ArrayDistance { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "array_distance" } diff --git a/datafusion/functions-nested/src/empty.rs b/datafusion/functions-nested/src/empty.rs index ca16e494b12d6..0e86eb021f1cb 100644 --- a/datafusion/functions-nested/src/empty.rs +++ b/datafusion/functions-nested/src/empty.rs @@ -30,7 +30,6 @@ use datafusion_expr::{ ColumnarValue, Documentation, ScalarUDFImpl, Signature, Volatility, }; use datafusion_macros::user_doc; -use std::any::Any; use std::sync::Arc; make_udf_expr_and_func!( @@ -79,9 +78,6 @@ impl ArrayEmpty { } impl ScalarUDFImpl for ArrayEmpty { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { "empty" } diff --git a/datafusion/functions-nested/src/except.rs b/datafusion/functions-nested/src/except.rs index 19a4e9573e35b..d47ebbc0aba73 100644 --- a/datafusion/functions-nested/src/except.rs +++ b/datafusion/functions-nested/src/except.rs @@ -30,7 +30,6 @@ use datafusion_expr::{ }; use datafusion_macros::user_doc; use itertools::Itertools; -use std::any::Any; use std::sync::Arc; make_udf_expr_and_func!( @@ -94,9 +93,6 @@ impl ArrayExcept { } impl ScalarUDFImpl for ArrayExcept { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { "array_except" } diff --git a/datafusion/functions-nested/src/extract.rs b/datafusion/functions-nested/src/extract.rs index 0f7246c8589cf..2f99a392bd3c2 100644 --- a/datafusion/functions-nested/src/extract.rs +++ b/datafusion/functions-nested/src/extract.rs @@ -45,7 +45,6 @@ use datafusion_expr::{ ColumnarValue, Documentation, ScalarUDFImpl, Signature, Volatility, }; use datafusion_macros::user_doc; -use std::any::Any; use std::sync::Arc; use crate::utils::make_scalar_function; @@ -132,9 +131,6 @@ impl ArrayElement { } impl ScalarUDFImpl for ArrayElement { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { "array_element" } @@ -358,10 +354,6 @@ impl ArraySlice { } impl ScalarUDFImpl for ArraySlice { - fn as_any(&self) -> &dyn Any { - self - } - fn display_name(&self, args: &[Expr]) -> Result { let args_name = args.iter().map(ToString::to_string).collect::>(); if let Some((arr, indexes)) = args_name.split_first() { @@ -827,9 +819,6 @@ impl ArrayPopFront { } impl ScalarUDFImpl for ArrayPopFront { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { "array_pop_front" } @@ -923,9 +912,6 @@ impl ArrayPopBack { } impl ScalarUDFImpl for ArrayPopBack { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { "array_pop_back" } @@ -1023,9 +1009,6 @@ impl ArrayAnyValue { } impl ScalarUDFImpl for ArrayAnyValue { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { "array_any_value" } diff --git a/datafusion/functions-nested/src/flatten.rs b/datafusion/functions-nested/src/flatten.rs index 8c21348507d26..9b7351ca37d31 100644 --- a/datafusion/functions-nested/src/flatten.rs +++ b/datafusion/functions-nested/src/flatten.rs @@ -30,7 +30,6 @@ use datafusion_expr::{ ColumnarValue, Documentation, ScalarUDFImpl, Signature, Volatility, }; use datafusion_macros::user_doc; -use std::any::Any; use std::sync::Arc; make_udf_expr_and_func!( @@ -80,10 +79,6 @@ impl Flatten { } impl ScalarUDFImpl for Flatten { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "flatten" } diff --git a/datafusion/functions-nested/src/length.rs b/datafusion/functions-nested/src/length.rs index a9a2731c3b329..7bebd07e9dc6b 100644 --- a/datafusion/functions-nested/src/length.rs +++ b/datafusion/functions-nested/src/length.rs @@ -36,7 +36,6 @@ use datafusion_expr::{ }; use datafusion_functions::downcast_arg; use datafusion_macros::user_doc; -use std::any::Any; use std::sync::Arc; make_udf_expr_and_func!( @@ -102,9 +101,6 @@ impl ArrayLength { } impl ScalarUDFImpl for ArrayLength { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { "array_length" } diff --git a/datafusion/functions-nested/src/make_array.rs b/datafusion/functions-nested/src/make_array.rs index bc899126fb643..d4301f2a0494e 100644 --- a/datafusion/functions-nested/src/make_array.rs +++ b/datafusion/functions-nested/src/make_array.rs @@ -17,7 +17,6 @@ //! [`ScalarUDFImpl`] definitions for `make_array` function. -use std::any::Any; use std::sync::Arc; use std::vec; @@ -86,10 +85,6 @@ impl MakeArray { } impl ScalarUDFImpl for MakeArray { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "make_array" } diff --git a/datafusion/functions-nested/src/map.rs b/datafusion/functions-nested/src/map.rs index 7df131cf5e27e..36bc0c1d65728 100644 --- a/datafusion/functions-nested/src/map.rs +++ b/datafusion/functions-nested/src/map.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::collections::VecDeque; use std::sync::Arc; @@ -256,10 +255,6 @@ impl MapFunc { } impl ScalarUDFImpl for MapFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "map" } diff --git a/datafusion/functions-nested/src/map_entries.rs b/datafusion/functions-nested/src/map_entries.rs index 571b5aacafa09..6148176b93db6 100644 --- a/datafusion/functions-nested/src/map_entries.rs +++ b/datafusion/functions-nested/src/map_entries.rs @@ -27,7 +27,6 @@ use datafusion_expr::{ TypeSignature, Volatility, }; use datafusion_macros::user_doc; -use std::any::Any; use std::sync::Arc; make_udf_expr_and_func!( @@ -79,10 +78,6 @@ impl MapEntriesFunc { } impl ScalarUDFImpl for MapEntriesFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "map_entries" } diff --git a/datafusion/functions-nested/src/map_extract.rs b/datafusion/functions-nested/src/map_extract.rs index 3d22d97c45b7b..d7b43963b954a 100644 --- a/datafusion/functions-nested/src/map_extract.rs +++ b/datafusion/functions-nested/src/map_extract.rs @@ -29,7 +29,6 @@ use datafusion_expr::{ ColumnarValue, Documentation, ScalarUDFImpl, Signature, Volatility, }; use datafusion_macros::user_doc; -use std::any::Any; use std::sync::Arc; use std::vec; @@ -90,9 +89,6 @@ impl MapExtract { } impl ScalarUDFImpl for MapExtract { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { "map_extract" } diff --git a/datafusion/functions-nested/src/map_keys.rs b/datafusion/functions-nested/src/map_keys.rs index c603340863299..bb4bb97713e4f 100644 --- a/datafusion/functions-nested/src/map_keys.rs +++ b/datafusion/functions-nested/src/map_keys.rs @@ -27,7 +27,6 @@ use datafusion_expr::{ TypeSignature, Volatility, }; use datafusion_macros::user_doc; -use std::any::Any; use std::sync::Arc; make_udf_expr_and_func!( @@ -79,10 +78,6 @@ impl MapKeysFunc { } impl ScalarUDFImpl for MapKeysFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "map_keys" } diff --git a/datafusion/functions-nested/src/map_values.rs b/datafusion/functions-nested/src/map_values.rs index 4cfb23d3084ad..d4faa208e1aa9 100644 --- a/datafusion/functions-nested/src/map_values.rs +++ b/datafusion/functions-nested/src/map_values.rs @@ -27,7 +27,6 @@ use datafusion_expr::{ TypeSignature, Volatility, }; use datafusion_macros::user_doc; -use std::any::Any; use std::ops::Deref; use std::sync::Arc; @@ -80,10 +79,6 @@ impl MapValuesFunc { } impl ScalarUDFImpl for MapValuesFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "map_values" } diff --git a/datafusion/functions-nested/src/min_max.rs b/datafusion/functions-nested/src/min_max.rs index e3603b731fd89..ff2bb6526ccfd 100644 --- a/datafusion/functions-nested/src/min_max.rs +++ b/datafusion/functions-nested/src/min_max.rs @@ -31,7 +31,6 @@ use datafusion_expr::{ use datafusion_functions_aggregate_common::min_max::{max_batch, min_batch}; use datafusion_macros::user_doc; use itertools::Itertools; -use std::any::Any; make_udf_expr_and_func!( ArrayMax, @@ -80,10 +79,6 @@ impl ArrayMax { } impl ScalarUDFImpl for ArrayMax { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "array_max" } @@ -166,10 +161,6 @@ impl ArrayMin { } impl ScalarUDFImpl for ArrayMin { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "array_min" } diff --git a/datafusion/functions-nested/src/position.rs b/datafusion/functions-nested/src/position.rs index 0214b1552bc9c..2e3a41c969f0f 100644 --- a/datafusion/functions-nested/src/position.rs +++ b/datafusion/functions-nested/src/position.rs @@ -29,7 +29,6 @@ use datafusion_expr::{ }; use datafusion_macros::user_doc; -use std::any::Any; use std::sync::Arc; use arrow::array::{ @@ -107,9 +106,6 @@ impl ArrayPosition { } impl ScalarUDFImpl for ArrayPosition { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { "array_position" } @@ -405,9 +401,6 @@ impl ArrayPositions { } impl ScalarUDFImpl for ArrayPositions { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { "array_positions" } diff --git a/datafusion/functions-nested/src/range.rs b/datafusion/functions-nested/src/range.rs index 307067b9c9975..cd2d913159a6c 100644 --- a/datafusion/functions-nested/src/range.rs +++ b/datafusion/functions-nested/src/range.rs @@ -51,7 +51,6 @@ use datafusion_expr::{ TypeSignatureClass, Volatility, }; use datafusion_macros::user_doc; -use std::any::Any; use std::cmp::Ordering; use std::iter::from_fn; use std::str::FromStr; @@ -212,10 +211,6 @@ impl Range { } impl ScalarUDFImpl for Range { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { if self.include_upper_bound { "generate_series" diff --git a/datafusion/functions-nested/src/remove.rs b/datafusion/functions-nested/src/remove.rs index 9e957c93e1c66..deb05f63f38be 100644 --- a/datafusion/functions-nested/src/remove.rs +++ b/datafusion/functions-nested/src/remove.rs @@ -33,7 +33,6 @@ use datafusion_expr::{ ScalarUDFImpl, Signature, TypeSignature, Volatility, }; use datafusion_macros::user_doc; -use std::any::Any; use std::sync::Arc; make_udf_expr_and_func!( @@ -87,10 +86,6 @@ impl ArrayRemove { } impl ScalarUDFImpl for ArrayRemove { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "array_remove" } @@ -182,10 +177,6 @@ impl ArrayRemoveN { } impl ScalarUDFImpl for ArrayRemoveN { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "array_remove_n" } @@ -266,10 +257,6 @@ impl ArrayRemoveAll { } impl ScalarUDFImpl for ArrayRemoveAll { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "array_remove_all" } diff --git a/datafusion/functions-nested/src/repeat.rs b/datafusion/functions-nested/src/repeat.rs index 5e78a4d0f601c..6741f8cbe78d9 100644 --- a/datafusion/functions-nested/src/repeat.rs +++ b/datafusion/functions-nested/src/repeat.rs @@ -37,7 +37,6 @@ use datafusion_expr::{ }; use datafusion_expr_common::signature::{Coercion, TypeSignatureClass}; use datafusion_macros::user_doc; -use std::any::Any; use std::sync::Arc; make_udf_expr_and_func!( @@ -107,10 +106,6 @@ impl ArrayRepeat { } impl ScalarUDFImpl for ArrayRepeat { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "array_repeat" } diff --git a/datafusion/functions-nested/src/replace.rs b/datafusion/functions-nested/src/replace.rs index 03524924e3c3d..e1813d654d7bc 100644 --- a/datafusion/functions-nested/src/replace.rs +++ b/datafusion/functions-nested/src/replace.rs @@ -36,7 +36,6 @@ use datafusion_macros::user_doc; use crate::utils::compare_element_to_list; use crate::utils::make_scalar_function; -use std::any::Any; use std::sync::Arc; // Create static instances of ScalarUDFs for each function @@ -113,10 +112,6 @@ impl ArrayReplace { } impl ScalarUDFImpl for ArrayReplace { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "array_replace" } @@ -195,10 +190,6 @@ impl ArrayReplaceN { } impl ScalarUDFImpl for ArrayReplaceN { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "array_replace_n" } @@ -275,10 +266,6 @@ impl ArrayReplaceAll { } impl ScalarUDFImpl for ArrayReplaceAll { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "array_replace_all" } diff --git a/datafusion/functions-nested/src/resize.rs b/datafusion/functions-nested/src/resize.rs index 486163df9754d..75ce6b0281231 100644 --- a/datafusion/functions-nested/src/resize.rs +++ b/datafusion/functions-nested/src/resize.rs @@ -37,7 +37,6 @@ use datafusion_expr::{ ScalarUDFImpl, Signature, TypeSignature, Volatility, }; use datafusion_macros::user_doc; -use std::any::Any; use std::sync::Arc; make_udf_expr_and_func!( @@ -111,10 +110,6 @@ impl ArrayResize { } impl ScalarUDFImpl for ArrayResize { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "array_resize" } diff --git a/datafusion/functions-nested/src/reverse.rs b/datafusion/functions-nested/src/reverse.rs index 114f9a0056ab5..d9042c7096057 100644 --- a/datafusion/functions-nested/src/reverse.rs +++ b/datafusion/functions-nested/src/reverse.rs @@ -38,7 +38,6 @@ use datafusion_expr::{ }; use datafusion_macros::user_doc; use itertools::Itertools; -use std::any::Any; use std::sync::Arc; make_udf_expr_and_func!( @@ -88,10 +87,6 @@ impl ArrayReverse { } impl ScalarUDFImpl for ArrayReverse { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "array_reverse" } diff --git a/datafusion/functions-nested/src/set_ops.rs b/datafusion/functions-nested/src/set_ops.rs index 150559111fef3..dd6b701e16239 100644 --- a/datafusion/functions-nested/src/set_ops.rs +++ b/datafusion/functions-nested/src/set_ops.rs @@ -35,7 +35,6 @@ use datafusion_expr::{ }; use datafusion_macros::user_doc; use hashbrown::HashSet; -use std::any::Any; use std::fmt::{Display, Formatter}; use std::sync::Arc; @@ -117,10 +116,6 @@ impl ArrayUnion { } impl ScalarUDFImpl for ArrayUnion { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "array_union" } @@ -207,10 +202,6 @@ impl ArrayIntersect { } impl ScalarUDFImpl for ArrayIntersect { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "array_intersect" } @@ -283,10 +274,6 @@ impl Default for ArrayDistinct { } impl ScalarUDFImpl for ArrayDistinct { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "array_distinct" } diff --git a/datafusion/functions-nested/src/sort.rs b/datafusion/functions-nested/src/sort.rs index cbe101f111b26..164c428ae65c4 100644 --- a/datafusion/functions-nested/src/sort.rs +++ b/datafusion/functions-nested/src/sort.rs @@ -31,7 +31,6 @@ use datafusion_expr::{ ScalarUDFImpl, Signature, TypeSignature, Volatility, }; use datafusion_macros::user_doc; -use std::any::Any; use std::sync::Arc; make_udf_expr_and_func!( @@ -119,10 +118,6 @@ impl ArraySort { } impl ScalarUDFImpl for ArraySort { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "array_sort" } diff --git a/datafusion/functions-nested/src/string.rs b/datafusion/functions-nested/src/string.rs index ce72e878de11f..3360b18367544 100644 --- a/datafusion/functions-nested/src/string.rs +++ b/datafusion/functions-nested/src/string.rs @@ -28,7 +28,6 @@ use arrow::datatypes::{DataType, Field}; use datafusion_common::utils::ListCoercion; use datafusion_common::{DataFusionError, Result, not_impl_err}; -use std::any::Any; use std::fmt::{self, Write}; use crate::utils::make_scalar_function; @@ -131,10 +130,6 @@ impl ArrayToString { } impl ScalarUDFImpl for ArrayToString { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "array_to_string" } @@ -225,10 +220,6 @@ impl StringToArray { } impl ScalarUDFImpl for StringToArray { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "string_to_array" } diff --git a/datafusion/functions/src/core/arrow_cast.rs b/datafusion/functions/src/core/arrow_cast.rs index e555081e4132c..35870d9d205f4 100644 --- a/datafusion/functions/src/core/arrow_cast.rs +++ b/datafusion/functions/src/core/arrow_cast.rs @@ -24,7 +24,6 @@ use datafusion_common::{ exec_datafusion_err, exec_err, internal_err, types::logical_string, utils::take_function_args, }; -use std::any::Any; use datafusion_expr::simplify::{ExprSimplifyResult, SimplifyContext}; use datafusion_expr::{ @@ -115,10 +114,6 @@ impl ArrowCastFunc { } impl ScalarUDFImpl for ArrowCastFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "arrow_cast" } diff --git a/datafusion/functions/src/core/arrow_metadata.rs b/datafusion/functions/src/core/arrow_metadata.rs index 86a6d8c21e96b..a80f66f396731 100644 --- a/datafusion/functions/src/core/arrow_metadata.rs +++ b/datafusion/functions/src/core/arrow_metadata.rs @@ -24,7 +24,6 @@ use datafusion_expr::{ TypeSignature, TypeSignatureClass, Volatility, }; use datafusion_macros::user_doc; -use std::any::Any; use std::sync::Arc; #[user_doc( @@ -85,10 +84,6 @@ impl Default for ArrowMetadataFunc { } impl ScalarUDFImpl for ArrowMetadataFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "arrow_metadata" } diff --git a/datafusion/functions/src/core/arrowtypeof.rs b/datafusion/functions/src/core/arrowtypeof.rs index f34a2abafd793..d25db584f6ea0 100644 --- a/datafusion/functions/src/core/arrowtypeof.rs +++ b/datafusion/functions/src/core/arrowtypeof.rs @@ -20,7 +20,6 @@ use datafusion_common::{Result, ScalarValue, utils::take_function_args}; use datafusion_expr::{ColumnarValue, Documentation, ScalarFunctionArgs}; use datafusion_expr::{ScalarUDFImpl, Signature, Volatility}; use datafusion_macros::user_doc; -use std::any::Any; #[user_doc( doc_section(label = "Other Functions"), @@ -60,9 +59,6 @@ impl ArrowTypeOfFunc { } impl ScalarUDFImpl for ArrowTypeOfFunc { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { "arrow_typeof" } diff --git a/datafusion/functions/src/core/coalesce.rs b/datafusion/functions/src/core/coalesce.rs index 359a6f6c9c84c..9cf3536443e6c 100644 --- a/datafusion/functions/src/core/coalesce.rs +++ b/datafusion/functions/src/core/coalesce.rs @@ -26,7 +26,6 @@ use datafusion_expr::{ use datafusion_expr::{ScalarUDFImpl, Signature, Volatility}; use datafusion_macros::user_doc; use itertools::Itertools; -use std::any::Any; #[user_doc( doc_section(label = "Conditional Functions"), @@ -65,10 +64,6 @@ impl CoalesceFunc { } impl ScalarUDFImpl for CoalesceFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "coalesce" } diff --git a/datafusion/functions/src/core/getfield.rs b/datafusion/functions/src/core/getfield.rs index d57ba46fb56a9..247c1493b1347 100644 --- a/datafusion/functions/src/core/getfield.rs +++ b/datafusion/functions/src/core/getfield.rs @@ -242,10 +242,6 @@ impl GetFieldFunc { // get_field(struct_array, field_name) impl ScalarUDFImpl for GetFieldFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "get_field" } @@ -444,9 +440,7 @@ impl ScalarUDFImpl for GetFieldFunc { func, args: inner_args, }) = current_expr - && func - .inner() - .as_any() + && (func.inner().as_ref() as &dyn Any) .downcast_ref::() .is_some() { diff --git a/datafusion/functions/src/core/greatest.rs b/datafusion/functions/src/core/greatest.rs index fb7592c6290ad..64eaefb9b887d 100644 --- a/datafusion/functions/src/core/greatest.rs +++ b/datafusion/functions/src/core/greatest.rs @@ -26,7 +26,6 @@ use datafusion_doc::Documentation; use datafusion_expr::{ColumnarValue, ScalarFunctionArgs}; use datafusion_expr::{ScalarUDFImpl, Signature, Volatility}; use datafusion_macros::user_doc; -use std::any::Any; const SORT_OPTIONS: SortOptions = SortOptions { // We want greatest first @@ -123,10 +122,6 @@ impl GreatestLeastOperator for GreatestFunc { } impl ScalarUDFImpl for GreatestFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "greatest" } diff --git a/datafusion/functions/src/core/least.rs b/datafusion/functions/src/core/least.rs index fc67924888a73..8b84aa49ab82a 100644 --- a/datafusion/functions/src/core/least.rs +++ b/datafusion/functions/src/core/least.rs @@ -26,7 +26,6 @@ use datafusion_doc::Documentation; use datafusion_expr::{ColumnarValue, ScalarFunctionArgs}; use datafusion_expr::{ScalarUDFImpl, Signature, Volatility}; use datafusion_macros::user_doc; -use std::any::Any; const SORT_OPTIONS: SortOptions = SortOptions { // Having the smallest result first @@ -136,10 +135,6 @@ impl GreatestLeastOperator for LeastFunc { } impl ScalarUDFImpl for LeastFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "least" } diff --git a/datafusion/functions/src/core/named_struct.rs b/datafusion/functions/src/core/named_struct.rs index 933151fcbd31e..6ae17f055e651 100644 --- a/datafusion/functions/src/core/named_struct.rs +++ b/datafusion/functions/src/core/named_struct.rs @@ -23,7 +23,6 @@ use datafusion_expr::{ }; use datafusion_expr::{ScalarUDFImpl, Signature, Volatility}; use datafusion_macros::user_doc; -use std::any::Any; use std::sync::Arc; #[user_doc( @@ -78,10 +77,6 @@ impl NamedStructFunc { } impl ScalarUDFImpl for NamedStructFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "named_struct" } diff --git a/datafusion/functions/src/core/nullif.rs b/datafusion/functions/src/core/nullif.rs index a8a512d35a36b..89c4d4eb0fc81 100644 --- a/datafusion/functions/src/core/nullif.rs +++ b/datafusion/functions/src/core/nullif.rs @@ -23,7 +23,6 @@ use arrow::compute::kernels::nullif::nullif; use datafusion_common::{Result, ScalarValue, utils::take_function_args}; use datafusion_expr::{ScalarUDFImpl, Signature, Volatility}; use datafusion_macros::user_doc; -use std::any::Any; #[user_doc( doc_section(label = "Conditional Functions"), @@ -86,9 +85,6 @@ impl NullIfFunc { } impl ScalarUDFImpl for NullIfFunc { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { "nullif" } diff --git a/datafusion/functions/src/core/nvl.rs b/datafusion/functions/src/core/nvl.rs index 0b4966d4fbdce..3b73dd0165143 100644 --- a/datafusion/functions/src/core/nvl.rs +++ b/datafusion/functions/src/core/nvl.rs @@ -101,10 +101,6 @@ impl NVLFunc { } impl ScalarUDFImpl for NVLFunc { - fn as_any(&self) -> &dyn std::any::Any { - self - } - fn name(&self) -> &str { "nvl" } diff --git a/datafusion/functions/src/core/nvl2.rs b/datafusion/functions/src/core/nvl2.rs index 0b092c44d502b..f5c1e9310ff0d 100644 --- a/datafusion/functions/src/core/nvl2.rs +++ b/datafusion/functions/src/core/nvl2.rs @@ -78,10 +78,6 @@ impl NVL2Func { } impl ScalarUDFImpl for NVL2Func { - fn as_any(&self) -> &dyn std::any::Any { - self - } - fn name(&self) -> &str { "nvl2" } diff --git a/datafusion/functions/src/core/overlay.rs b/datafusion/functions/src/core/overlay.rs index 179ad9a460a08..58f22caf52e32 100644 --- a/datafusion/functions/src/core/overlay.rs +++ b/datafusion/functions/src/core/overlay.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::{ArrayRef, GenericStringArray, OffsetSizeTrait}; @@ -84,10 +83,6 @@ impl OverlayFunc { } impl ScalarUDFImpl for OverlayFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "overlay" } diff --git a/datafusion/functions/src/core/struct.rs b/datafusion/functions/src/core/struct.rs index 352f258643921..476da39a5ab2d 100644 --- a/datafusion/functions/src/core/struct.rs +++ b/datafusion/functions/src/core/struct.rs @@ -21,7 +21,6 @@ use datafusion_common::{Result, exec_err, internal_err}; use datafusion_expr::{ColumnarValue, Documentation, ScalarFunctionArgs}; use datafusion_expr::{ScalarUDFImpl, Signature, Volatility}; use datafusion_macros::user_doc; -use std::any::Any; use std::sync::Arc; #[user_doc( @@ -86,9 +85,6 @@ impl StructFunc { } impl ScalarUDFImpl for StructFunc { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { "struct" } diff --git a/datafusion/functions/src/core/union_extract.rs b/datafusion/functions/src/core/union_extract.rs index 8d915fb2e2c07..9c0d42edf7fde 100644 --- a/datafusion/functions/src/core/union_extract.rs +++ b/datafusion/functions/src/core/union_extract.rs @@ -69,10 +69,6 @@ impl UnionExtractFun { } impl ScalarUDFImpl for UnionExtractFun { - fn as_any(&self) -> &dyn std::any::Any { - self - } - fn name(&self) -> &str { "union_extract" } diff --git a/datafusion/functions/src/core/union_tag.rs b/datafusion/functions/src/core/union_tag.rs index fac5c82691adc..9a349a4b9a8eb 100644 --- a/datafusion/functions/src/core/union_tag.rs +++ b/datafusion/functions/src/core/union_tag.rs @@ -63,10 +63,6 @@ impl UnionTagFunc { } impl ScalarUDFImpl for UnionTagFunc { - fn as_any(&self) -> &dyn std::any::Any { - self - } - fn name(&self) -> &str { "union_tag" } diff --git a/datafusion/functions/src/core/version.rs b/datafusion/functions/src/core/version.rs index 436551184f609..c0bfcd6d7fca6 100644 --- a/datafusion/functions/src/core/version.rs +++ b/datafusion/functions/src/core/version.rs @@ -24,7 +24,6 @@ use datafusion_expr::{ Volatility, }; use datafusion_macros::user_doc; -use std::any::Any; #[user_doc( doc_section(label = "Other Functions"), @@ -59,10 +58,6 @@ impl VersionFunc { } impl ScalarUDFImpl for VersionFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "version" } diff --git a/datafusion/functions/src/crypto/digest.rs b/datafusion/functions/src/crypto/digest.rs index 4d3ff06777249..84b2c99b00087 100644 --- a/datafusion/functions/src/crypto/digest.rs +++ b/datafusion/functions/src/crypto/digest.rs @@ -29,7 +29,6 @@ use datafusion_expr::{ }; use datafusion_expr_common::signature::{Coercion, TypeSignatureClass}; use datafusion_macros::user_doc; -use std::any::Any; #[user_doc( doc_section(label = "Hashing Functions"), @@ -89,10 +88,6 @@ impl DigestFunc { } impl ScalarUDFImpl for DigestFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "digest" } diff --git a/datafusion/functions/src/crypto/md5.rs b/datafusion/functions/src/crypto/md5.rs index 355e3e287ad22..178aebf0fbd41 100644 --- a/datafusion/functions/src/crypto/md5.rs +++ b/datafusion/functions/src/crypto/md5.rs @@ -29,7 +29,7 @@ use datafusion_expr::{ }; use datafusion_expr_common::signature::{Coercion, TypeSignatureClass}; use datafusion_macros::user_doc; -use std::{any::Any, sync::Arc}; +use std::sync::Arc; use crate::crypto::basic::{DigestAlgorithm, digest_process}; @@ -77,10 +77,6 @@ impl Md5Func { } impl ScalarUDFImpl for Md5Func { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "md5" } diff --git a/datafusion/functions/src/crypto/sha.rs b/datafusion/functions/src/crypto/sha.rs index 9199cf57c7a2d..65153fa117eda 100644 --- a/datafusion/functions/src/crypto/sha.rs +++ b/datafusion/functions/src/crypto/sha.rs @@ -29,7 +29,6 @@ use datafusion_expr::{ }; use datafusion_expr_common::signature::{Coercion, TypeSignatureClass}; use datafusion_macros::user_doc; -use std::any::Any; #[user_doc( doc_section(label = "Hashing Functions"), @@ -139,10 +138,6 @@ impl SHAFunc { } impl ScalarUDFImpl for SHAFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { self.name } diff --git a/datafusion/functions/src/datetime/current_date.rs b/datafusion/functions/src/datetime/current_date.rs index 3e38772720979..e225fccd2467f 100644 --- a/datafusion/functions/src/datetime/current_date.rs +++ b/datafusion/functions/src/datetime/current_date.rs @@ -15,8 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; - use arrow::array::timezone::Tz; use arrow::datatypes::DataType; use arrow::datatypes::DataType::Date32; @@ -68,10 +66,6 @@ impl CurrentDateFunc { /// wherever it appears within a single statement. This value is /// chosen during planning time. impl ScalarUDFImpl for CurrentDateFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "current_date" } diff --git a/datafusion/functions/src/datetime/current_time.rs b/datafusion/functions/src/datetime/current_time.rs index 855c0c13dc6b4..47fc69a35ffce 100644 --- a/datafusion/functions/src/datetime/current_time.rs +++ b/datafusion/functions/src/datetime/current_time.rs @@ -27,7 +27,6 @@ use datafusion_expr::{ ColumnarValue, Documentation, Expr, ScalarUDFImpl, Signature, Volatility, }; use datafusion_macros::user_doc; -use std::any::Any; #[user_doc( doc_section(label = "Time and Date Functions"), @@ -68,10 +67,6 @@ impl CurrentTimeFunc { /// wherever it appears within a single statement. This value is /// chosen during planning time. impl ScalarUDFImpl for CurrentTimeFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "current_time" } diff --git a/datafusion/functions/src/datetime/date_bin.rs b/datafusion/functions/src/datetime/date_bin.rs index c0984c1ea64e8..79f17fa3d942e 100644 --- a/datafusion/functions/src/datetime/date_bin.rs +++ b/datafusion/functions/src/datetime/date_bin.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::temporal_conversions::NANOSECONDS; @@ -213,10 +212,6 @@ impl DateBinFunc { } impl ScalarUDFImpl for DateBinFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "date_bin" } diff --git a/datafusion/functions/src/datetime/date_part.rs b/datafusion/functions/src/datetime/date_part.rs index f3d676f11d54e..91d307594fd72 100644 --- a/datafusion/functions/src/datetime/date_part.rs +++ b/datafusion/functions/src/datetime/date_part.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::str::FromStr; use std::sync::Arc; @@ -139,10 +138,6 @@ impl DatePartFunc { } impl ScalarUDFImpl for DatePartFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "date_part" } diff --git a/datafusion/functions/src/datetime/date_trunc.rs b/datafusion/functions/src/datetime/date_trunc.rs index 8497e583ba4bc..f3ea6cd37c5c5 100644 --- a/datafusion/functions/src/datetime/date_trunc.rs +++ b/datafusion/functions/src/datetime/date_trunc.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::num::NonZeroI64; use std::ops::{Add, Sub}; use std::str::FromStr; @@ -211,10 +210,6 @@ impl DateTruncFunc { } impl ScalarUDFImpl for DateTruncFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "date_trunc" } diff --git a/datafusion/functions/src/datetime/from_unixtime.rs b/datafusion/functions/src/datetime/from_unixtime.rs index 574564dd4502f..0c549527d82a6 100644 --- a/datafusion/functions/src/datetime/from_unixtime.rs +++ b/datafusion/functions/src/datetime/from_unixtime.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::datatypes::DataType::{Int64, Timestamp, Utf8}; @@ -69,10 +68,6 @@ impl FromUnixtimeFunc { } impl ScalarUDFImpl for FromUnixtimeFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "from_unixtime" } diff --git a/datafusion/functions/src/datetime/make_date.rs b/datafusion/functions/src/datetime/make_date.rs index 8a87809c4394c..4c9bd73c52a8c 100644 --- a/datafusion/functions/src/datetime/make_date.rs +++ b/datafusion/functions/src/datetime/make_date.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::builder::PrimitiveBuilder; @@ -96,10 +95,6 @@ impl MakeDateFunc { } impl ScalarUDFImpl for MakeDateFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "make_date" } diff --git a/datafusion/functions/src/datetime/make_time.rs b/datafusion/functions/src/datetime/make_time.rs index 5775ce851af77..f1d65a6104c94 100644 --- a/datafusion/functions/src/datetime/make_time.rs +++ b/datafusion/functions/src/datetime/make_time.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::builder::PrimitiveBuilder; @@ -96,10 +95,6 @@ impl MakeTimeFunc { } impl ScalarUDFImpl for MakeTimeFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "make_time" } diff --git a/datafusion/functions/src/datetime/now.rs b/datafusion/functions/src/datetime/now.rs index 338a62a118f31..e96223c6c927e 100644 --- a/datafusion/functions/src/datetime/now.rs +++ b/datafusion/functions/src/datetime/now.rs @@ -18,7 +18,6 @@ use arrow::datatypes::DataType::Timestamp; use arrow::datatypes::TimeUnit::Nanosecond; use arrow::datatypes::{DataType, Field, FieldRef}; -use std::any::Any; use std::sync::Arc; use datafusion_common::config::ConfigOptions; @@ -83,10 +82,6 @@ impl NowFunc { /// wherever it appears within a single statement. This value is /// chosen during planning time. impl ScalarUDFImpl for NowFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "now" } diff --git a/datafusion/functions/src/datetime/to_char.rs b/datafusion/functions/src/datetime/to_char.rs index 4ceaac1cc8afd..6c593c337853c 100644 --- a/datafusion/functions/src/datetime/to_char.rs +++ b/datafusion/functions/src/datetime/to_char.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::builder::StringBuilder; @@ -119,10 +118,6 @@ impl ToCharFunc { } impl ScalarUDFImpl for ToCharFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "to_char" } diff --git a/datafusion/functions/src/datetime/to_date.rs b/datafusion/functions/src/datetime/to_date.rs index 60c6fdf2df975..98fc532f84334 100644 --- a/datafusion/functions/src/datetime/to_date.rs +++ b/datafusion/functions/src/datetime/to_date.rs @@ -27,7 +27,6 @@ use datafusion_expr::{ ColumnarValue, Documentation, ScalarUDFImpl, Signature, Volatility, }; use datafusion_macros::user_doc; -use std::any::Any; #[user_doc( doc_section(label = "Time and Date Functions"), @@ -117,10 +116,6 @@ impl ToDateFunc { } impl ScalarUDFImpl for ToDateFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "to_date" } diff --git a/datafusion/functions/src/datetime/to_local_time.rs b/datafusion/functions/src/datetime/to_local_time.rs index 0500497a15fa7..0b69f06dd02c9 100644 --- a/datafusion/functions/src/datetime/to_local_time.rs +++ b/datafusion/functions/src/datetime/to_local_time.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::ops::Add; use std::sync::Arc; @@ -121,10 +120,6 @@ impl ToLocalTimeFunc { } impl ScalarUDFImpl for ToLocalTimeFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "to_local_time" } diff --git a/datafusion/functions/src/datetime/to_time.rs b/datafusion/functions/src/datetime/to_time.rs index 086126409e828..b12b1ae7b75fc 100644 --- a/datafusion/functions/src/datetime/to_time.rs +++ b/datafusion/functions/src/datetime/to_time.rs @@ -29,7 +29,6 @@ use datafusion_expr::{ ColumnarValue, Documentation, ScalarUDFImpl, Signature, Volatility, }; use datafusion_macros::user_doc; -use std::any::Any; use std::sync::Arc; /// Default time formats to try when parsing without an explicit format @@ -100,10 +99,6 @@ impl ToTimeFunc { } impl ScalarUDFImpl for ToTimeFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "to_time" } diff --git a/datafusion/functions/src/datetime/to_timestamp.rs b/datafusion/functions/src/datetime/to_timestamp.rs index 6d40133bd29bf..dd799b569bdac 100644 --- a/datafusion/functions/src/datetime/to_timestamp.rs +++ b/datafusion/functions/src/datetime/to_timestamp.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use crate::datetime::common::*; @@ -387,10 +386,6 @@ macro_rules! impl_with_updated_config { } impl ScalarUDFImpl for ToTimestampFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "to_timestamp" } @@ -500,10 +495,6 @@ impl ScalarUDFImpl for ToTimestampFunc { } impl ScalarUDFImpl for ToTimestampSecondsFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "to_timestamp_seconds" } @@ -576,10 +567,6 @@ impl ScalarUDFImpl for ToTimestampSecondsFunc { } impl ScalarUDFImpl for ToTimestampMillisFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "to_timestamp_millis" } @@ -652,10 +639,6 @@ impl ScalarUDFImpl for ToTimestampMillisFunc { } impl ScalarUDFImpl for ToTimestampMicrosFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "to_timestamp_micros" } @@ -728,10 +711,6 @@ impl ScalarUDFImpl for ToTimestampMicrosFunc { } impl ScalarUDFImpl for ToTimestampNanosFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "to_timestamp_nanos" } diff --git a/datafusion/functions/src/datetime/to_unixtime.rs b/datafusion/functions/src/datetime/to_unixtime.rs index 2dd377282725a..831969dcc8b2d 100644 --- a/datafusion/functions/src/datetime/to_unixtime.rs +++ b/datafusion/functions/src/datetime/to_unixtime.rs @@ -23,7 +23,6 @@ use datafusion_expr::{ ColumnarValue, Documentation, ScalarUDFImpl, Signature, Volatility, }; use datafusion_macros::user_doc; -use std::any::Any; #[user_doc( doc_section(label = "Time and Date Functions"), @@ -79,10 +78,6 @@ impl ToUnixtimeFunc { } impl ScalarUDFImpl for ToUnixtimeFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "to_unixtime" } diff --git a/datafusion/functions/src/encoding/inner.rs b/datafusion/functions/src/encoding/inner.rs index 4ad67b78178f2..ad156f735b33b 100644 --- a/datafusion/functions/src/encoding/inner.rs +++ b/datafusion/functions/src/encoding/inner.rs @@ -40,7 +40,6 @@ use datafusion_expr::{ TypeSignatureClass, Volatility, }; use datafusion_macros::user_doc; -use std::any::Any; use std::fmt; use std::sync::Arc; @@ -102,10 +101,6 @@ impl EncodeFunc { } impl ScalarUDFImpl for EncodeFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "encode" } @@ -179,10 +174,6 @@ impl DecodeFunc { } impl ScalarUDFImpl for DecodeFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "decode" } diff --git a/datafusion/functions/src/macros.rs b/datafusion/functions/src/macros.rs index 380877b593643..71528b4d16bf0 100644 --- a/datafusion/functions/src/macros.rs +++ b/datafusion/functions/src/macros.rs @@ -213,7 +213,7 @@ macro_rules! make_math_unary_udf { $crate::make_udf_function!($NAME::$UDF, $NAME); mod $NAME { - use std::any::Any; + use std::sync::Arc; use arrow::array::{ArrayRef, AsArray}; @@ -245,9 +245,6 @@ macro_rules! make_math_unary_udf { } impl ScalarUDFImpl for $UDF { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { stringify!($NAME) } @@ -327,7 +324,7 @@ macro_rules! make_math_binary_udf { $crate::make_udf_function!($NAME::$UDF, $NAME); mod $NAME { - use std::any::Any; + use std::sync::Arc; use arrow::array::{ArrayRef, AsArray}; @@ -362,9 +359,6 @@ macro_rules! make_math_binary_udf { } impl ScalarUDFImpl for $UDF { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { stringify!($NAME) } diff --git a/datafusion/functions/src/math/abs.rs b/datafusion/functions/src/math/abs.rs index 1b5aaf7745a84..02ac89756d919 100644 --- a/datafusion/functions/src/math/abs.rs +++ b/datafusion/functions/src/math/abs.rs @@ -17,7 +17,6 @@ //! math expressions -use std::any::Any; use std::sync::Arc; use arrow::array::{ @@ -147,10 +146,6 @@ impl AbsFunc { } impl ScalarUDFImpl for AbsFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "abs" } diff --git a/datafusion/functions/src/math/ceil.rs b/datafusion/functions/src/math/ceil.rs index 5961b3cb27fed..395cb4eae03f5 100644 --- a/datafusion/functions/src/math/ceil.rs +++ b/datafusion/functions/src/math/ceil.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::{ArrayRef, AsArray}; @@ -75,10 +74,6 @@ impl CeilFunc { } impl ScalarUDFImpl for CeilFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "ceil" } diff --git a/datafusion/functions/src/math/cot.rs b/datafusion/functions/src/math/cot.rs index 1f67ef713833f..24f0a412e3a8a 100644 --- a/datafusion/functions/src/math/cot.rs +++ b/datafusion/functions/src/math/cot.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::AsArray; @@ -72,10 +71,6 @@ impl CotFunc { } impl ScalarUDFImpl for CotFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "cot" } diff --git a/datafusion/functions/src/math/factorial.rs b/datafusion/functions/src/math/factorial.rs index c1dd802140c04..b4c41838e164f 100644 --- a/datafusion/functions/src/math/factorial.rs +++ b/datafusion/functions/src/math/factorial.rs @@ -16,7 +16,6 @@ // under the License. use arrow::array::{ArrayRef, AsArray, Int64Array}; -use std::any::Any; use std::sync::Arc; use arrow::datatypes::DataType::Int64; @@ -65,10 +64,6 @@ impl FactorialFunc { } impl ScalarUDFImpl for FactorialFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "factorial" } diff --git a/datafusion/functions/src/math/floor.rs b/datafusion/functions/src/math/floor.rs index d4f25716ff7ee..e02aa141c5b71 100644 --- a/datafusion/functions/src/math/floor.rs +++ b/datafusion/functions/src/math/floor.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::{ArrayRef, AsArray}; @@ -115,10 +114,6 @@ macro_rules! preimage_bounds { } impl ScalarUDFImpl for FloorFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "floor" } diff --git a/datafusion/functions/src/math/gcd.rs b/datafusion/functions/src/math/gcd.rs index 1f6a353a85ee3..35aa9c095a0db 100644 --- a/datafusion/functions/src/math/gcd.rs +++ b/datafusion/functions/src/math/gcd.rs @@ -19,7 +19,6 @@ use arrow::array::{ArrayRef, AsArray, Int64Array, PrimitiveArray}; use arrow::compute::try_binary; use arrow::datatypes::{DataType, Int64Type}; use arrow::error::ArrowError; -use std::any::Any; use std::mem::swap; use std::sync::Arc; @@ -69,10 +68,6 @@ impl GcdFunc { } impl ScalarUDFImpl for GcdFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "gcd" } diff --git a/datafusion/functions/src/math/iszero.rs b/datafusion/functions/src/math/iszero.rs index aa93d797eb7b3..de6fc669692ee 100644 --- a/datafusion/functions/src/math/iszero.rs +++ b/datafusion/functions/src/math/iszero.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::{ArrowNativeTypeOp, AsArray, BooleanArray}; @@ -74,10 +73,6 @@ impl IsZeroFunc { } impl ScalarUDFImpl for IsZeroFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "iszero" } diff --git a/datafusion/functions/src/math/lcm.rs b/datafusion/functions/src/math/lcm.rs index 58934e137beca..c52b3d2c6ed9e 100644 --- a/datafusion/functions/src/math/lcm.rs +++ b/datafusion/functions/src/math/lcm.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::{ArrayRef, Int64Array}; @@ -69,10 +68,6 @@ impl LcmFunc { } impl ScalarUDFImpl for LcmFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "lcm" } diff --git a/datafusion/functions/src/math/log.rs b/datafusion/functions/src/math/log.rs index d1906a4bf0e01..571d44a14c641 100644 --- a/datafusion/functions/src/math/log.rs +++ b/datafusion/functions/src/math/log.rs @@ -209,9 +209,6 @@ fn log_decimal256(value: i256, scale: i8, base: f64) -> Result } impl ScalarUDFImpl for LogFunc { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { "log" } @@ -423,7 +420,9 @@ impl ScalarUDFImpl for LogFunc { /// Returns true if the function is `PowerFunc` fn is_pow(func: &ScalarUDF) -> bool { - func.inner().as_any().downcast_ref::().is_some() + (func.inner().as_ref() as &dyn Any) + .downcast_ref::() + .is_some() } #[cfg(test)] diff --git a/datafusion/functions/src/math/nans.rs b/datafusion/functions/src/math/nans.rs index 632eafe1e009a..c5ea2fa079a45 100644 --- a/datafusion/functions/src/math/nans.rs +++ b/datafusion/functions/src/math/nans.rs @@ -33,7 +33,6 @@ use datafusion_expr::{ TypeSignatureClass, Volatility, }; use datafusion_macros::user_doc; -use std::any::Any; use std::sync::Arc; #[user_doc( @@ -72,9 +71,6 @@ impl IsNanFunc { } impl ScalarUDFImpl for IsNanFunc { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { "isnan" } diff --git a/datafusion/functions/src/math/nanvl.rs b/datafusion/functions/src/math/nanvl.rs index 2bdc3fbbc64ac..251e98bb72c03 100644 --- a/datafusion/functions/src/math/nanvl.rs +++ b/datafusion/functions/src/math/nanvl.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::{ArrayRef, AsArray, Float16Array, Float32Array, Float64Array}; @@ -78,10 +77,6 @@ impl NanvlFunc { } impl ScalarUDFImpl for NanvlFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "nanvl" } diff --git a/datafusion/functions/src/math/pi.rs b/datafusion/functions/src/math/pi.rs index 574928a09705f..55707f2c71feb 100644 --- a/datafusion/functions/src/math/pi.rs +++ b/datafusion/functions/src/math/pi.rs @@ -15,8 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; - use arrow::datatypes::DataType; use arrow::datatypes::DataType::Float64; use datafusion_common::{Result, ScalarValue, assert_or_internal_err}; @@ -52,10 +50,6 @@ impl PiFunc { } impl ScalarUDFImpl for PiFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "pi" } diff --git a/datafusion/functions/src/math/power.rs b/datafusion/functions/src/math/power.rs index 489c59aa3d6fa..bac970c95d085 100644 --- a/datafusion/functions/src/math/power.rs +++ b/datafusion/functions/src/math/power.rs @@ -392,10 +392,6 @@ fn pow_decimal_with_float_fallback( } impl ScalarUDFImpl for PowerFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "power" } @@ -605,7 +601,9 @@ impl ScalarUDFImpl for PowerFunc { /// Return true if this function call is a call to `Log` fn is_log(func: &ScalarUDF) -> bool { - func.inner().as_any().downcast_ref::().is_some() + (func.inner().as_ref() as &dyn Any) + .downcast_ref::() + .is_some() } #[cfg(test)] diff --git a/datafusion/functions/src/math/random.rs b/datafusion/functions/src/math/random.rs index 78932873b485b..aa5294b6229bc 100644 --- a/datafusion/functions/src/math/random.rs +++ b/datafusion/functions/src/math/random.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::Float64Array; @@ -62,10 +61,6 @@ impl RandomFunc { } impl ScalarUDFImpl for RandomFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "random" } diff --git a/datafusion/functions/src/math/round.rs b/datafusion/functions/src/math/round.rs index 07cddf9341f27..78016c0f52f71 100644 --- a/datafusion/functions/src/math/round.rs +++ b/datafusion/functions/src/math/round.rs @@ -15,8 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; - use crate::utils::{calculate_binary_decimal_math, calculate_binary_math}; use arrow::array::ArrayRef; @@ -216,10 +214,6 @@ impl RoundFunc { } impl ScalarUDFImpl for RoundFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "round" } diff --git a/datafusion/functions/src/math/signum.rs b/datafusion/functions/src/math/signum.rs index 8a3769a12f294..8c8eeacf12394 100644 --- a/datafusion/functions/src/math/signum.rs +++ b/datafusion/functions/src/math/signum.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::AsArray; @@ -72,10 +71,6 @@ impl SignumFunc { } impl ScalarUDFImpl for SignumFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "signum" } diff --git a/datafusion/functions/src/math/trunc.rs b/datafusion/functions/src/math/trunc.rs index ecdad22e8af11..991ad0e9c470d 100644 --- a/datafusion/functions/src/math/trunc.rs +++ b/datafusion/functions/src/math/trunc.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use crate::utils::make_scalar_function; @@ -90,10 +89,6 @@ impl TruncFunc { } impl ScalarUDFImpl for TruncFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "trunc" } diff --git a/datafusion/functions/src/regex/regexpcount.rs b/datafusion/functions/src/regex/regexpcount.rs index 7792d8098a4ef..f82833ae915c2 100644 --- a/datafusion/functions/src/regex/regexpcount.rs +++ b/datafusion/functions/src/regex/regexpcount.rs @@ -92,10 +92,6 @@ impl RegexpCountFunc { } impl ScalarUDFImpl for RegexpCountFunc { - fn as_any(&self) -> &dyn std::any::Any { - self - } - fn name(&self) -> &str { "regexp_count" } diff --git a/datafusion/functions/src/regex/regexpinstr.rs b/datafusion/functions/src/regex/regexpinstr.rs index dce689a0c28d6..396f27191c51a 100644 --- a/datafusion/functions/src/regex/regexpinstr.rs +++ b/datafusion/functions/src/regex/regexpinstr.rs @@ -109,10 +109,6 @@ impl RegexpInstrFunc { } impl ScalarUDFImpl for RegexpInstrFunc { - fn as_any(&self) -> &dyn std::any::Any { - self - } - fn name(&self) -> &str { "regexp_instr" } diff --git a/datafusion/functions/src/regex/regexplike.rs b/datafusion/functions/src/regex/regexplike.rs index b2df38a679aea..76c77492ea8e6 100644 --- a/datafusion/functions/src/regex/regexplike.rs +++ b/datafusion/functions/src/regex/regexplike.rs @@ -35,7 +35,6 @@ use datafusion_expr::simplify::{ExprSimplifyResult, SimplifyContext}; use datafusion_expr_common::operator::Operator; use datafusion_expr_common::type_coercion::binary::BinaryTypeCoercer; use regex::Regex; -use std::any::Any; use std::sync::Arc; #[user_doc( @@ -103,10 +102,6 @@ impl RegexpLikeFunc { } impl ScalarUDFImpl for RegexpLikeFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "regexp_like" } diff --git a/datafusion/functions/src/regex/regexpmatch.rs b/datafusion/functions/src/regex/regexpmatch.rs index e026d16e1cddb..c7b7fae1a72c3 100644 --- a/datafusion/functions/src/regex/regexpmatch.rs +++ b/datafusion/functions/src/regex/regexpmatch.rs @@ -27,7 +27,6 @@ use datafusion_common::{arrow_datafusion_err, plan_err}; use datafusion_expr::{ColumnarValue, Documentation, TypeSignature}; use datafusion_expr::{ScalarUDFImpl, Signature, Volatility}; use datafusion_macros::user_doc; -use std::any::Any; use std::sync::Arc; #[user_doc( @@ -100,10 +99,6 @@ impl RegexpMatchFunc { } impl ScalarUDFImpl for RegexpMatchFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "regexp_match" } diff --git a/datafusion/functions/src/regex/regexpreplace.rs b/datafusion/functions/src/regex/regexpreplace.rs index 68e324e21c891..6a1762c001b81 100644 --- a/datafusion/functions/src/regex/regexpreplace.rs +++ b/datafusion/functions/src/regex/regexpreplace.rs @@ -39,7 +39,6 @@ use datafusion_expr::function::Hint; use datafusion_expr::{Documentation, ScalarUDFImpl, Signature, Volatility}; use datafusion_macros::user_doc; use regex::Regex; -use std::any::Any; use std::collections::HashMap; use std::sync::{Arc, LazyLock}; @@ -111,10 +110,6 @@ impl RegexpReplaceFunc { } impl ScalarUDFImpl for RegexpReplaceFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "regexp_replace" } diff --git a/datafusion/functions/src/string/ascii.rs b/datafusion/functions/src/string/ascii.rs index bfd035ed3c0db..bb5a8d0125a70 100644 --- a/datafusion/functions/src/string/ascii.rs +++ b/datafusion/functions/src/string/ascii.rs @@ -25,7 +25,6 @@ use datafusion_expr::{ColumnarValue, Documentation, TypeSignatureClass}; use datafusion_expr::{ScalarFunctionArgs, ScalarUDFImpl, Signature, Volatility}; use datafusion_expr_common::signature::Coercion; use datafusion_macros::user_doc; -use std::any::Any; use std::sync::Arc; #[user_doc( @@ -74,10 +73,6 @@ impl AsciiFunc { } impl ScalarUDFImpl for AsciiFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "ascii" } diff --git a/datafusion/functions/src/string/bit_length.rs b/datafusion/functions/src/string/bit_length.rs index 1578331e57f89..76d8bb73bba87 100644 --- a/datafusion/functions/src/string/bit_length.rs +++ b/datafusion/functions/src/string/bit_length.rs @@ -17,7 +17,6 @@ use arrow::compute::kernels::length::bit_length; use arrow::datatypes::DataType; -use std::any::Any; use crate::utils::utf8_to_int_type; use datafusion_common::types::logical_string; @@ -70,10 +69,6 @@ impl BitLengthFunc { } impl ScalarUDFImpl for BitLengthFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "bit_length" } diff --git a/datafusion/functions/src/string/btrim.rs b/datafusion/functions/src/string/btrim.rs index beea527f6d0b5..279f444d9ffe7 100644 --- a/datafusion/functions/src/string/btrim.rs +++ b/datafusion/functions/src/string/btrim.rs @@ -27,7 +27,6 @@ use datafusion_expr::{ TypeSignature, TypeSignatureClass, Volatility, }; use datafusion_macros::user_doc; -use std::any::Any; use std::sync::Arc; /// Returns the longest string with leading and trailing characters removed. If the characters are not specified, spaces are removed. @@ -98,10 +97,6 @@ impl BTrimFunc { } impl ScalarUDFImpl for BTrimFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "btrim" } diff --git a/datafusion/functions/src/string/chr.rs b/datafusion/functions/src/string/chr.rs index 2f432c838e010..d6085628dd41d 100644 --- a/datafusion/functions/src/string/chr.rs +++ b/datafusion/functions/src/string/chr.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::{ArrayRef, GenericStringBuilder, Int64Array}; @@ -95,10 +94,6 @@ impl ChrFunc { } impl ScalarUDFImpl for ChrFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "chr" } diff --git a/datafusion/functions/src/string/concat.rs b/datafusion/functions/src/string/concat.rs index e674541253288..e7ddbf5c898f9 100644 --- a/datafusion/functions/src/string/concat.rs +++ b/datafusion/functions/src/string/concat.rs @@ -18,7 +18,6 @@ use arrow::array::{Array, as_largestring_array}; use arrow::datatypes::DataType; use datafusion_expr::sort_properties::ExprProperties; -use std::any::Any; use std::sync::Arc; use crate::string::concat; @@ -76,10 +75,6 @@ impl ConcatFunc { } impl ScalarUDFImpl for ConcatFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "concat" } diff --git a/datafusion/functions/src/string/concat_ws.rs b/datafusion/functions/src/string/concat_ws.rs index 9d3b32eedf8fd..9e7aee4fd42bb 100644 --- a/datafusion/functions/src/string/concat_ws.rs +++ b/datafusion/functions/src/string/concat_ws.rs @@ -16,7 +16,6 @@ // under the License. use arrow::array::Array; -use std::any::Any; use std::sync::Arc; use arrow::datatypes::DataType; @@ -85,10 +84,6 @@ impl ConcatWsFunc { } impl ScalarUDFImpl for ConcatWsFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "concat_ws" } diff --git a/datafusion/functions/src/string/contains.rs b/datafusion/functions/src/string/contains.rs index b7ec95be444cc..8a75e3ac703ee 100644 --- a/datafusion/functions/src/string/contains.rs +++ b/datafusion/functions/src/string/contains.rs @@ -27,7 +27,6 @@ use datafusion_expr::{ TypeSignatureClass, Volatility, }; use datafusion_macros::user_doc; -use std::any::Any; use std::sync::Arc; #[user_doc( @@ -71,10 +70,6 @@ impl ContainsFunc { } impl ScalarUDFImpl for ContainsFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "contains" } diff --git a/datafusion/functions/src/string/ends_with.rs b/datafusion/functions/src/string/ends_with.rs index f65349a83799d..6b84e260a2d11 100644 --- a/datafusion/functions/src/string/ends_with.rs +++ b/datafusion/functions/src/string/ends_with.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::{ArrayRef, Scalar}; @@ -79,10 +78,6 @@ impl EndsWithFunc { } impl ScalarUDFImpl for EndsWithFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "ends_with" } diff --git a/datafusion/functions/src/string/levenshtein.rs b/datafusion/functions/src/string/levenshtein.rs index 4fedd0d3ebad0..38fa8fa878de9 100644 --- a/datafusion/functions/src/string/levenshtein.rs +++ b/datafusion/functions/src/string/levenshtein.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::{ArrayRef, Int32Array, Int64Array, OffsetSizeTrait}; @@ -83,10 +82,6 @@ impl LevenshteinFunc { } impl ScalarUDFImpl for LevenshteinFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "levenshtein" } diff --git a/datafusion/functions/src/string/lower.rs b/datafusion/functions/src/string/lower.rs index 3750d3d290a9c..d491ec95d0afc 100644 --- a/datafusion/functions/src/string/lower.rs +++ b/datafusion/functions/src/string/lower.rs @@ -16,7 +16,6 @@ // under the License. use arrow::datatypes::DataType; -use std::any::Any; use crate::string::common::to_lower; use crate::utils::utf8_to_str_type; @@ -69,10 +68,6 @@ impl LowerFunc { } impl ScalarUDFImpl for LowerFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "lower" } diff --git a/datafusion/functions/src/string/ltrim.rs b/datafusion/functions/src/string/ltrim.rs index f84b273b8d6b2..e49ffeb0541ff 100644 --- a/datafusion/functions/src/string/ltrim.rs +++ b/datafusion/functions/src/string/ltrim.rs @@ -17,7 +17,6 @@ use arrow::array::{ArrayRef, OffsetSizeTrait}; use arrow::datatypes::DataType; -use std::any::Any; use std::sync::Arc; use crate::string::common::*; @@ -102,10 +101,6 @@ impl LtrimFunc { } impl ScalarUDFImpl for LtrimFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "ltrim" } diff --git a/datafusion/functions/src/string/octet_length.rs b/datafusion/functions/src/string/octet_length.rs index 3732897f3d372..ecffb2a6de7af 100644 --- a/datafusion/functions/src/string/octet_length.rs +++ b/datafusion/functions/src/string/octet_length.rs @@ -17,7 +17,6 @@ use arrow::compute::kernels::length::length; use arrow::datatypes::DataType; -use std::any::Any; use crate::utils::utf8_to_int_type; use datafusion_common::types::logical_string; @@ -70,10 +69,6 @@ impl OctetLengthFunc { } impl ScalarUDFImpl for OctetLengthFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "octet_length" } diff --git a/datafusion/functions/src/string/repeat.rs b/datafusion/functions/src/string/repeat.rs index 65f320c4f9f13..4e38ec9af3859 100644 --- a/datafusion/functions/src/string/repeat.rs +++ b/datafusion/functions/src/string/repeat.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use crate::utils::utf8_to_str_type; @@ -83,10 +82,6 @@ impl RepeatFunc { } impl ScalarUDFImpl for RepeatFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "repeat" } diff --git a/datafusion/functions/src/string/replace.rs b/datafusion/functions/src/string/replace.rs index 458b86d0c6fb0..cca68844a1684 100644 --- a/datafusion/functions/src/string/replace.rs +++ b/datafusion/functions/src/string/replace.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::{ArrayRef, GenericStringBuilder, OffsetSizeTrait}; @@ -79,10 +78,6 @@ impl ReplaceFunc { } impl ScalarUDFImpl for ReplaceFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "replace" } diff --git a/datafusion/functions/src/string/rtrim.rs b/datafusion/functions/src/string/rtrim.rs index 5659d0acfd97c..05ad9e855976d 100644 --- a/datafusion/functions/src/string/rtrim.rs +++ b/datafusion/functions/src/string/rtrim.rs @@ -17,7 +17,6 @@ use arrow::array::{ArrayRef, OffsetSizeTrait}; use arrow::datatypes::DataType; -use std::any::Any; use std::sync::Arc; use crate::string::common::*; @@ -102,10 +101,6 @@ impl RtrimFunc { } impl ScalarUDFImpl for RtrimFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "rtrim" } diff --git a/datafusion/functions/src/string/split_part.rs b/datafusion/functions/src/string/split_part.rs index 0bd197818e4e2..2f36c767f0521 100644 --- a/datafusion/functions/src/string/split_part.rs +++ b/datafusion/functions/src/string/split_part.rs @@ -31,7 +31,6 @@ use datafusion_expr::{ }; use datafusion_expr::{ScalarFunctionArgs, ScalarUDFImpl, Signature}; use datafusion_macros::user_doc; -use std::any::Any; use std::sync::Arc; #[user_doc( @@ -84,10 +83,6 @@ impl SplitPartFunc { } impl ScalarUDFImpl for SplitPartFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "split_part" } diff --git a/datafusion/functions/src/string/starts_with.rs b/datafusion/functions/src/string/starts_with.rs index e50bd9f657669..28319fd76d9a5 100644 --- a/datafusion/functions/src/string/starts_with.rs +++ b/datafusion/functions/src/string/starts_with.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::{ArrayRef, Scalar}; @@ -75,10 +74,6 @@ impl StartsWithFunc { } impl ScalarUDFImpl for StartsWithFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "starts_with" } diff --git a/datafusion/functions/src/string/to_hex.rs b/datafusion/functions/src/string/to_hex.rs index ed8ce07b876d5..497a0a1206922 100644 --- a/datafusion/functions/src/string/to_hex.rs +++ b/datafusion/functions/src/string/to_hex.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::{Array, ArrayRef, StringArray}; @@ -213,10 +212,6 @@ impl ToHexFunc { } impl ScalarUDFImpl for ToHexFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "to_hex" } diff --git a/datafusion/functions/src/string/upper.rs b/datafusion/functions/src/string/upper.rs index a2a7db1848f59..81c68697a5033 100644 --- a/datafusion/functions/src/string/upper.rs +++ b/datafusion/functions/src/string/upper.rs @@ -25,7 +25,6 @@ use datafusion_expr::{ TypeSignatureClass, Volatility, }; use datafusion_macros::user_doc; -use std::any::Any; #[user_doc( doc_section(label = "String Functions"), @@ -68,10 +67,6 @@ impl UpperFunc { } impl ScalarUDFImpl for UpperFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "upper" } diff --git a/datafusion/functions/src/string/uuid.rs b/datafusion/functions/src/string/uuid.rs index 3a99412f5ed29..b2dd18683e1a6 100644 --- a/datafusion/functions/src/string/uuid.rs +++ b/datafusion/functions/src/string/uuid.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::GenericStringBuilder; @@ -62,10 +61,6 @@ impl UuidFunc { } impl ScalarUDFImpl for UuidFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "uuid" } diff --git a/datafusion/functions/src/unicode/character_length.rs b/datafusion/functions/src/unicode/character_length.rs index 1073fa060dab4..56bd32fb528ec 100644 --- a/datafusion/functions/src/unicode/character_length.rs +++ b/datafusion/functions/src/unicode/character_length.rs @@ -26,7 +26,6 @@ use datafusion_expr::{ ColumnarValue, Documentation, ScalarUDFImpl, Signature, Volatility, }; use datafusion_macros::user_doc; -use std::any::Any; use std::sync::Arc; #[user_doc( @@ -72,10 +71,6 @@ impl CharacterLengthFunc { } impl ScalarUDFImpl for CharacterLengthFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "character_length" } diff --git a/datafusion/functions/src/unicode/find_in_set.rs b/datafusion/functions/src/unicode/find_in_set.rs index 0cf20584a6bcc..b58fa911a9e2f 100644 --- a/datafusion/functions/src/unicode/find_in_set.rs +++ b/datafusion/functions/src/unicode/find_in_set.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::{ @@ -81,10 +80,6 @@ impl FindInSetFunc { } impl ScalarUDFImpl for FindInSetFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "find_in_set" } diff --git a/datafusion/functions/src/unicode/initcap.rs b/datafusion/functions/src/unicode/initcap.rs index a0cae69c52010..81172b7332a73 100644 --- a/datafusion/functions/src/unicode/initcap.rs +++ b/datafusion/functions/src/unicode/initcap.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::{ @@ -77,10 +76,6 @@ impl InitcapFunc { } impl ScalarUDFImpl for InitcapFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "initcap" } diff --git a/datafusion/functions/src/unicode/left.rs b/datafusion/functions/src/unicode/left.rs index 76873e7f5d3e1..daf0385492757 100644 --- a/datafusion/functions/src/unicode/left.rs +++ b/datafusion/functions/src/unicode/left.rs @@ -15,8 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; - use crate::unicode::common::{LeftSlicer, general_left_right}; use crate::utils::make_scalar_function; use arrow::datatypes::DataType; @@ -72,10 +70,6 @@ impl LeftFunc { } impl ScalarUDFImpl for LeftFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "left" } diff --git a/datafusion/functions/src/unicode/lpad.rs b/datafusion/functions/src/unicode/lpad.rs index 50d15c7d62a65..164311cad6453 100644 --- a/datafusion/functions/src/unicode/lpad.rs +++ b/datafusion/functions/src/unicode/lpad.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::fmt::Write; use std::sync::Arc; @@ -96,10 +95,6 @@ impl LPadFunc { } impl ScalarUDFImpl for LPadFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "lpad" } diff --git a/datafusion/functions/src/unicode/reverse.rs b/datafusion/functions/src/unicode/reverse.rs index 71a1e6842f8f3..d24d91c54387b 100644 --- a/datafusion/functions/src/unicode/reverse.rs +++ b/datafusion/functions/src/unicode/reverse.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use crate::utils::{make_scalar_function, utf8_to_str_type}; @@ -69,10 +68,6 @@ impl ReverseFunc { } impl ScalarUDFImpl for ReverseFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "reverse" } diff --git a/datafusion/functions/src/unicode/right.rs b/datafusion/functions/src/unicode/right.rs index a97e242b73f9e..cb9b16b15f56a 100644 --- a/datafusion/functions/src/unicode/right.rs +++ b/datafusion/functions/src/unicode/right.rs @@ -15,8 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; - use crate::unicode::common::{RightSlicer, general_left_right}; use crate::utils::make_scalar_function; use arrow::datatypes::DataType; @@ -72,10 +70,6 @@ impl RightFunc { } impl ScalarUDFImpl for RightFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "right" } diff --git a/datafusion/functions/src/unicode/rpad.rs b/datafusion/functions/src/unicode/rpad.rs index 95d9492bc246d..ab374a63b2f6a 100644 --- a/datafusion/functions/src/unicode/rpad.rs +++ b/datafusion/functions/src/unicode/rpad.rs @@ -30,7 +30,6 @@ use datafusion_expr::{ ColumnarValue, Documentation, ScalarUDFImpl, Signature, Volatility, }; use datafusion_macros::user_doc; -use std::any::Any; use std::fmt::Write; use std::sync::Arc; use unicode_segmentation::UnicodeSegmentation; @@ -95,10 +94,6 @@ impl RPadFunc { } impl ScalarUDFImpl for RPadFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "rpad" } diff --git a/datafusion/functions/src/unicode/strpos.rs b/datafusion/functions/src/unicode/strpos.rs index c1d6ecffe5510..4bf3dda4cceee 100644 --- a/datafusion/functions/src/unicode/strpos.rs +++ b/datafusion/functions/src/unicode/strpos.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use crate::utils::{make_scalar_function, utf8_to_int_type}; @@ -78,10 +77,6 @@ impl StrposFunc { } impl ScalarUDFImpl for StrposFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "strpos" } diff --git a/datafusion/functions/src/unicode/substr.rs b/datafusion/functions/src/unicode/substr.rs index 505388089f198..08d1d2847604d 100644 --- a/datafusion/functions/src/unicode/substr.rs +++ b/datafusion/functions/src/unicode/substr.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use crate::strings::make_and_append_view; @@ -104,10 +103,6 @@ impl SubstrFunc { } impl ScalarUDFImpl for SubstrFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "substr" } diff --git a/datafusion/functions/src/unicode/substrindex.rs b/datafusion/functions/src/unicode/substrindex.rs index 6389dc92c2380..96f9ce31af89b 100644 --- a/datafusion/functions/src/unicode/substrindex.rs +++ b/datafusion/functions/src/unicode/substrindex.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::{ @@ -92,10 +91,6 @@ impl SubstrIndexFunc { } impl ScalarUDFImpl for SubstrIndexFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "substr_index" } diff --git a/datafusion/functions/src/unicode/translate.rs b/datafusion/functions/src/unicode/translate.rs index e86eaf8111b1c..b4c15863e14b2 100644 --- a/datafusion/functions/src/unicode/translate.rs +++ b/datafusion/functions/src/unicode/translate.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::{ @@ -80,10 +79,6 @@ impl TranslateFunc { } impl ScalarUDFImpl for TranslateFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "translate" } diff --git a/datafusion/optimizer/src/analyzer/type_coercion.rs b/datafusion/optimizer/src/analyzer/type_coercion.rs index efc9984acb9b0..3939c8a8ad5e0 100644 --- a/datafusion/optimizer/src/analyzer/type_coercion.rs +++ b/datafusion/optimizer/src/analyzer/type_coercion.rs @@ -1246,7 +1246,7 @@ fn project_with_column_index( #[cfg(test)] mod test { - use std::any::Any; + use std::sync::Arc; use arrow::datatypes::DataType::Utf8; @@ -1693,10 +1693,6 @@ mod test { } impl ScalarUDFImpl for TestScalarUDF { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "TestScalarUDF" } diff --git a/datafusion/optimizer/src/common_subexpr_eliminate.rs b/datafusion/optimizer/src/common_subexpr_eliminate.rs index 2096c42770315..88dba57d75b1d 100644 --- a/datafusion/optimizer/src/common_subexpr_eliminate.rs +++ b/datafusion/optimizer/src/common_subexpr_eliminate.rs @@ -829,7 +829,7 @@ fn extract_expressions(expr: &Expr, result: &mut Vec) { #[cfg(test)] mod test { - use std::any::Any; + use std::iter; use arrow::datatypes::{DataType, Field, Schema}; @@ -1700,9 +1700,6 @@ mod test { } impl ScalarUDFImpl for TestUdf { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { "my_udf" } @@ -1826,10 +1823,6 @@ mod test { } } impl ScalarUDFImpl for RandomStub { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "random" } diff --git a/datafusion/optimizer/src/eliminate_group_by_constant.rs b/datafusion/optimizer/src/eliminate_group_by_constant.rs index 6f5ca59e31113..f8e584a6f5941 100644 --- a/datafusion/optimizer/src/eliminate_group_by_constant.rs +++ b/datafusion/optimizer/src/eliminate_group_by_constant.rs @@ -193,9 +193,6 @@ mod tests { } impl ScalarUDFImpl for ScalarUDFMock { - fn as_any(&self) -> &dyn std::any::Any { - self - } fn name(&self) -> &str { "scalar_fn_mock" } diff --git a/datafusion/optimizer/src/push_down_filter.rs b/datafusion/optimizer/src/push_down_filter.rs index 03a7a0b864177..6c9f3f51468c2 100644 --- a/datafusion/optimizer/src/push_down_filter.rs +++ b/datafusion/optimizer/src/push_down_filter.rs @@ -3953,9 +3953,6 @@ mod tests { } impl ScalarUDFImpl for TestScalarUDF { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { "TestScalarUDF" } diff --git a/datafusion/optimizer/src/simplify_expressions/expr_simplifier.rs b/datafusion/optimizer/src/simplify_expressions/expr_simplifier.rs index 28fcdf1dede0b..2e988d1637f32 100644 --- a/datafusion/optimizer/src/simplify_expressions/expr_simplifier.rs +++ b/datafusion/optimizer/src/simplify_expressions/expr_simplifier.rs @@ -5078,10 +5078,6 @@ mod tests { } } impl ScalarUDFImpl for VolatileUdf { - fn as_any(&self) -> &dyn std::any::Any { - self - } - fn name(&self) -> &str { "VolatileUdf" } diff --git a/datafusion/optimizer/src/simplify_expressions/udf_preimage.rs b/datafusion/optimizer/src/simplify_expressions/udf_preimage.rs index da2716d13cb47..c84e4cd24fcaa 100644 --- a/datafusion/optimizer/src/simplify_expressions/udf_preimage.rs +++ b/datafusion/optimizer/src/simplify_expressions/udf_preimage.rs @@ -68,7 +68,7 @@ pub(super) fn rewrite_with_preimage( #[cfg(test)] mod test { - use std::any::Any; + use std::sync::Arc; use arrow::datatypes::{DataType, Field}; @@ -120,10 +120,6 @@ mod test { } impl ScalarUDFImpl for PreimageUdf { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "preimage_func" } diff --git a/datafusion/optimizer/src/test/udfs.rs b/datafusion/optimizer/src/test/udfs.rs index 9164603dba3d5..ba71b6a04a7a2 100644 --- a/datafusion/optimizer/src/test/udfs.rs +++ b/datafusion/optimizer/src/test/udfs.rs @@ -15,8 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; - use arrow::datatypes::DataType; use datafusion_common::Result; use datafusion_expr::{ @@ -69,9 +67,6 @@ impl PlacementTestUDF { } impl ScalarUDFImpl for PlacementTestUDF { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { match self.placement { ExpressionPlacement::MoveTowardsLeafNodes => "leaf_udf", diff --git a/datafusion/physical-expr/src/async_scalar_function.rs b/datafusion/physical-expr/src/async_scalar_function.rs index 2f50a17afc39a..4fc79822b5966 100644 --- a/datafusion/physical-expr/src/async_scalar_function.rs +++ b/datafusion/physical-expr/src/async_scalar_function.rs @@ -101,7 +101,7 @@ impl AsyncFuncExpr { pub fn ideal_batch_size(&self) -> Result> { if let Some(expr) = self.func.as_any().downcast_ref::() && let Some(udf) = - expr.fun().inner().as_any().downcast_ref::() + (expr.fun().inner().as_ref() as &dyn Any).downcast_ref::() { return Ok(udf.ideal_batch_size()); } @@ -125,10 +125,7 @@ impl AsyncFuncExpr { ); }; - let Some(async_udf) = scalar_function_expr - .fun() - .inner() - .as_any() + let Some(async_udf) = (scalar_function_expr.fun().inner().as_ref() as &dyn Any) .downcast_ref::() else { return not_impl_err!( diff --git a/datafusion/physical-expr/src/scalar_function.rs b/datafusion/physical-expr/src/scalar_function.rs index dab4153fa6828..c796ffaf5f20e 100644 --- a/datafusion/physical-expr/src/scalar_function.rs +++ b/datafusion/physical-expr/src/scalar_function.rs @@ -173,10 +173,7 @@ impl ScalarFunctionExpr { { match expr.as_any().downcast_ref::() { Some(scalar_expr) - if scalar_expr - .fun() - .inner() - .as_any() + if (scalar_expr.fun().inner().as_ref() as &dyn Any) .downcast_ref::() .is_some() => { @@ -377,7 +374,6 @@ mod tests { use arrow::datatypes::{DataType, Field, Schema}; use datafusion_expr::{ScalarUDF, ScalarUDFImpl, Signature}; use datafusion_physical_expr_common::physical_expr::is_volatile; - use std::any::Any; /// Test helper to create a mock UDF with a specific volatility #[derive(Debug, PartialEq, Eq, Hash)] @@ -386,10 +382,6 @@ mod tests { } impl ScalarUDFImpl for MockScalarUDF { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "mock_function" } diff --git a/datafusion/physical-expr/src/utils/mod.rs b/datafusion/physical-expr/src/utils/mod.rs index 2cdc326f5dd36..c4ec370430d32 100644 --- a/datafusion/physical-expr/src/utils/mod.rs +++ b/datafusion/physical-expr/src/utils/mod.rs @@ -267,7 +267,7 @@ pub fn reassign_expr_columns( #[cfg(test)] pub(crate) mod tests { - use std::any::Any; + use std::fmt::{Display, Formatter}; use super::*; @@ -302,9 +302,6 @@ pub(crate) mod tests { } impl ScalarUDFImpl for TestScalarUDF { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { "test-scalar-udf" } diff --git a/datafusion/proto/tests/cases/mod.rs b/datafusion/proto/tests/cases/mod.rs index aec6c1de30309..4584991cfd3fe 100644 --- a/datafusion/proto/tests/cases/mod.rs +++ b/datafusion/proto/tests/cases/mod.rs @@ -56,9 +56,6 @@ impl MyRegexUdf { /// Implement the ScalarUDFImpl trait for MyRegexUdf impl ScalarUDFImpl for MyRegexUdf { - fn as_any(&self) -> &dyn Any { - self - } fn name(&self) -> &str { "regex_udf" } @@ -108,6 +105,7 @@ impl AggregateUDFImpl for MyAggregateUDF { fn as_any(&self) -> &dyn Any { self } + fn name(&self) -> &str { "aggregate_udf" } diff --git a/datafusion/proto/tests/cases/roundtrip_logical_plan.rs b/datafusion/proto/tests/cases/roundtrip_logical_plan.rs index 63ad00c92e6a9..049841980587a 100644 --- a/datafusion/proto/tests/cases/roundtrip_logical_plan.rs +++ b/datafusion/proto/tests/cases/roundtrip_logical_plan.rs @@ -1499,7 +1499,9 @@ impl LogicalExtensionCodec for UDFExtensionCodec { fn try_encode_udf(&self, node: &ScalarUDF, buf: &mut Vec) -> Result<()> { let binding = node.inner(); - let udf = binding.as_any().downcast_ref::().unwrap(); + let udf = (binding.as_ref() as &dyn Any) + .downcast_ref::() + .unwrap(); let proto = MyRegexUdfNode { pattern: udf.pattern.clone(), }; diff --git a/datafusion/proto/tests/cases/roundtrip_physical_plan.rs b/datafusion/proto/tests/cases/roundtrip_physical_plan.rs index 66ca903e4ec8a..4484cec42e4d0 100644 --- a/datafusion/proto/tests/cases/roundtrip_physical_plan.rs +++ b/datafusion/proto/tests/cases/roundtrip_physical_plan.rs @@ -1280,7 +1280,7 @@ impl PhysicalExtensionCodec for UDFExtensionCodec { fn try_encode_udf(&self, node: &ScalarUDF, buf: &mut Vec) -> Result<()> { let binding = node.inner(); - if let Some(udf) = binding.as_any().downcast_ref::() { + if let Some(udf) = (binding.as_ref() as &dyn Any).downcast_ref::() { let proto = MyRegexUdfNode { pattern: udf.pattern.clone(), }; @@ -2407,10 +2407,6 @@ async fn roundtrip_async_func_exec() -> Result<()> { } impl ScalarUDFImpl for TestAsyncUDF { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "test_async_udf" } diff --git a/datafusion/spark/src/function/array/array_contains.rs b/datafusion/spark/src/function/array/array_contains.rs index 2bc5d64d8bff8..e0f99f7dd326e 100644 --- a/datafusion/spark/src/function/array/array_contains.rs +++ b/datafusion/spark/src/function/array/array_contains.rs @@ -25,7 +25,6 @@ use datafusion_expr::{ ColumnarValue, ScalarFunctionArgs, ScalarUDFImpl, Signature, Volatility, }; use datafusion_functions_nested::array_has::array_has_udf; -use std::any::Any; use std::sync::Arc; /// Spark-compatible `array_contains` function. @@ -56,10 +55,6 @@ impl SparkArrayContains { } impl ScalarUDFImpl for SparkArrayContains { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "array_contains" } diff --git a/datafusion/spark/src/function/array/repeat.rs b/datafusion/spark/src/function/array/repeat.rs index 7543300a91078..ea9758ee9891d 100644 --- a/datafusion/spark/src/function/array/repeat.rs +++ b/datafusion/spark/src/function/array/repeat.rs @@ -22,7 +22,6 @@ use datafusion_expr::{ ColumnarValue, ScalarFunctionArgs, ScalarUDFImpl, Signature, Volatility, }; use datafusion_functions_nested::repeat::ArrayRepeat; -use std::any::Any; use std::sync::Arc; use crate::function::null_utils::{ @@ -51,10 +50,6 @@ impl SparkArrayRepeat { } impl ScalarUDFImpl for SparkArrayRepeat { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "array_repeat" } diff --git a/datafusion/spark/src/function/array/shuffle.rs b/datafusion/spark/src/function/array/shuffle.rs index 8051825acc743..520402ed16e89 100644 --- a/datafusion/spark/src/function/array/shuffle.rs +++ b/datafusion/spark/src/function/array/shuffle.rs @@ -36,7 +36,6 @@ use datafusion_expr::{ use rand::rng; use rand::rngs::StdRng; use rand::{Rng, SeedableRng, seq::SliceRandom}; -use std::any::Any; use std::sync::Arc; #[derive(Debug, PartialEq, Eq, Hash)] @@ -77,10 +76,6 @@ impl SparkShuffle { } impl ScalarUDFImpl for SparkShuffle { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "shuffle" } diff --git a/datafusion/spark/src/function/array/slice.rs b/datafusion/spark/src/function/array/slice.rs index 6c168a4f491b5..d3884d8f3b902 100644 --- a/datafusion/spark/src/function/array/slice.rs +++ b/datafusion/spark/src/function/array/slice.rs @@ -25,7 +25,6 @@ use datafusion_expr::{ ScalarFunctionArgs, ScalarUDFImpl, Signature, TypeSignature, Volatility, }; use datafusion_functions_nested::extract::array_slice_udf; -use std::any::Any; use std::sync::Arc; /// Spark slice function implementation @@ -64,10 +63,6 @@ impl SparkSlice { } impl ScalarUDFImpl for SparkSlice { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "slice" } diff --git a/datafusion/spark/src/function/array/spark_array.rs b/datafusion/spark/src/function/array/spark_array.rs index 1ad0a394b8ca6..d6d4e7f0ab9f0 100644 --- a/datafusion/spark/src/function/array/spark_array.rs +++ b/datafusion/spark/src/function/array/spark_array.rs @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -use std::{any::Any, sync::Arc}; +use std::sync::Arc; use arrow::array::{Array, ArrayRef, new_null_array}; use arrow::datatypes::{DataType, Field, FieldRef}; @@ -51,10 +51,6 @@ impl SparkArray { } impl ScalarUDFImpl for SparkArray { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "array" } diff --git a/datafusion/spark/src/function/bitmap/bitmap_bit_position.rs b/datafusion/spark/src/function/bitmap/bitmap_bit_position.rs index 3871d00cc91d8..4cc9731eeda82 100644 --- a/datafusion/spark/src/function/bitmap/bitmap_bit_position.rs +++ b/datafusion/spark/src/function/bitmap/bitmap_bit_position.rs @@ -23,7 +23,6 @@ use datafusion_common::utils::take_function_args; use datafusion_common::{Result, internal_err}; use datafusion_expr::{ScalarFunctionArgs, ScalarUDFImpl}; use datafusion_functions::utils::make_scalar_function; -use std::any::Any; use std::sync::Arc; /// Spark-compatible `bitmap_bit_position` expression @@ -56,10 +55,6 @@ impl BitmapBitPosition { } impl ScalarUDFImpl for BitmapBitPosition { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "bitmap_bit_position" } diff --git a/datafusion/spark/src/function/bitmap/bitmap_bucket_number.rs b/datafusion/spark/src/function/bitmap/bitmap_bucket_number.rs index fe72a4fe8ac3e..b5ecbde65560f 100644 --- a/datafusion/spark/src/function/bitmap/bitmap_bucket_number.rs +++ b/datafusion/spark/src/function/bitmap/bitmap_bucket_number.rs @@ -23,7 +23,6 @@ use datafusion_common::utils::take_function_args; use datafusion_common::{Result, internal_err}; use datafusion_expr::{ScalarFunctionArgs, ScalarUDFImpl}; use datafusion_functions::utils::make_scalar_function; -use std::any::Any; use std::sync::Arc; /// Spark-compatible `bitmap_bucket_number` expression @@ -56,10 +55,6 @@ impl BitmapBucketNumber { } impl ScalarUDFImpl for BitmapBucketNumber { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "bitmap_bucket_number" } diff --git a/datafusion/spark/src/function/bitmap/bitmap_count.rs b/datafusion/spark/src/function/bitmap/bitmap_count.rs index e59bc5f529317..89bea101afbe7 100644 --- a/datafusion/spark/src/function/bitmap/bitmap_count.rs +++ b/datafusion/spark/src/function/bitmap/bitmap_count.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::{ @@ -58,10 +57,6 @@ impl BitmapCount { } impl ScalarUDFImpl for BitmapCount { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "bitmap_count" } diff --git a/datafusion/spark/src/function/bitwise/bit_count.rs b/datafusion/spark/src/function/bitwise/bit_count.rs index 00170293dc391..5db9a567b9d18 100644 --- a/datafusion/spark/src/function/bitwise/bit_count.rs +++ b/datafusion/spark/src/function/bitwise/bit_count.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::{ArrayRef, AsArray, Int32Array}; @@ -64,10 +63,6 @@ impl SparkBitCount { } impl ScalarUDFImpl for SparkBitCount { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "bit_count" } diff --git a/datafusion/spark/src/function/bitwise/bit_get.rs b/datafusion/spark/src/function/bitwise/bit_get.rs index 3343c6c61de0b..fd3e37428be17 100644 --- a/datafusion/spark/src/function/bitwise/bit_get.rs +++ b/datafusion/spark/src/function/bitwise/bit_get.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::mem::size_of; use std::sync::Arc; @@ -66,10 +65,6 @@ impl SparkBitGet { } impl ScalarUDFImpl for SparkBitGet { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "bit_get" } diff --git a/datafusion/spark/src/function/bitwise/bit_shift.rs b/datafusion/spark/src/function/bitwise/bit_shift.rs index fc3df28e968a8..ef75199aa0482 100644 --- a/datafusion/spark/src/function/bitwise/bit_shift.rs +++ b/datafusion/spark/src/function/bitwise/bit_shift.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::{ArrayRef, ArrowPrimitiveType, AsArray, Int32Array, PrimitiveArray}; @@ -264,10 +263,6 @@ impl SparkBitShift { } impl ScalarUDFImpl for SparkBitShift { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { self.name } diff --git a/datafusion/spark/src/function/bitwise/bitwise_not.rs b/datafusion/spark/src/function/bitwise/bitwise_not.rs index e7285d4804950..f6db2977d3202 100644 --- a/datafusion/spark/src/function/bitwise/bitwise_not.rs +++ b/datafusion/spark/src/function/bitwise/bitwise_not.rs @@ -24,7 +24,7 @@ use datafusion_common::{Result, internal_err, plan_err}; use datafusion_expr::{ColumnarValue, TypeSignature, Volatility}; use datafusion_expr::{ReturnFieldArgs, ScalarFunctionArgs, ScalarUDFImpl, Signature}; use datafusion_functions::utils::make_scalar_function; -use std::{any::Any, sync::Arc}; +use std::sync::Arc; #[derive(Debug, PartialEq, Eq, Hash)] pub struct SparkBitwiseNot { @@ -54,10 +54,6 @@ impl SparkBitwiseNot { } impl ScalarUDFImpl for SparkBitwiseNot { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "bitwise_not" } diff --git a/datafusion/spark/src/function/collection/size.rs b/datafusion/spark/src/function/collection/size.rs index 05b8ba315675c..e53bbf86d78cb 100644 --- a/datafusion/spark/src/function/collection/size.rs +++ b/datafusion/spark/src/function/collection/size.rs @@ -24,7 +24,6 @@ use datafusion_expr::{ ScalarFunctionArgs, ScalarUDFImpl, Signature, TypeSignature, Volatility, }; use datafusion_functions::utils::make_scalar_function; -use std::any::Any; use std::sync::Arc; /// Spark-compatible `size` function. @@ -62,10 +61,6 @@ impl SparkSize { } impl ScalarUDFImpl for SparkSize { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "size" } diff --git a/datafusion/spark/src/function/conditional/if.rs b/datafusion/spark/src/function/conditional/if.rs index e423f8264ecca..b185a5187055d 100644 --- a/datafusion/spark/src/function/conditional/if.rs +++ b/datafusion/spark/src/function/conditional/if.rs @@ -42,10 +42,6 @@ impl SparkIf { } impl ScalarUDFImpl for SparkIf { - fn as_any(&self) -> &dyn std::any::Any { - self - } - fn name(&self) -> &str { "if" } diff --git a/datafusion/spark/src/function/datetime/add_months.rs b/datafusion/spark/src/function/datetime/add_months.rs index fa9f6fa8db945..2963cf5880b9c 100644 --- a/datafusion/spark/src/function/datetime/add_months.rs +++ b/datafusion/spark/src/function/datetime/add_months.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::ops::Add; use std::sync::Arc; @@ -52,10 +51,6 @@ impl SparkAddMonths { } impl ScalarUDFImpl for SparkAddMonths { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "add_months" } diff --git a/datafusion/spark/src/function/datetime/date_add.rs b/datafusion/spark/src/function/datetime/date_add.rs index 3745f77969f22..48a1660f2be16 100644 --- a/datafusion/spark/src/function/datetime/date_add.rs +++ b/datafusion/spark/src/function/datetime/date_add.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::ArrayRef; @@ -61,10 +60,6 @@ impl SparkDateAdd { } impl ScalarUDFImpl for SparkDateAdd { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "date_add" } diff --git a/datafusion/spark/src/function/datetime/date_diff.rs b/datafusion/spark/src/function/datetime/date_diff.rs index 094c35eec56b5..b9793ddc00670 100644 --- a/datafusion/spark/src/function/datetime/date_diff.rs +++ b/datafusion/spark/src/function/datetime/date_diff.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::datatypes::{DataType, Field, FieldRef}; @@ -72,10 +71,6 @@ impl SparkDateDiff { } impl ScalarUDFImpl for SparkDateDiff { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "date_diff" } diff --git a/datafusion/spark/src/function/datetime/date_part.rs b/datafusion/spark/src/function/datetime/date_part.rs index e30a162ef42db..ced4865d164a3 100644 --- a/datafusion/spark/src/function/datetime/date_part.rs +++ b/datafusion/spark/src/function/datetime/date_part.rs @@ -26,7 +26,7 @@ use datafusion_expr::{ Coercion, ColumnarValue, Expr, ReturnFieldArgs, ScalarFunctionArgs, ScalarUDFImpl, Signature, TypeSignature, TypeSignatureClass, Volatility, }; -use std::{any::Any, sync::Arc}; +use std::sync::Arc; /// Wrapper around datafusion date_part function to handle /// Spark behavior returning day of the week 1-indexed instead of 0-indexed and different part aliases. @@ -65,10 +65,6 @@ impl SparkDatePart { } impl ScalarUDFImpl for SparkDatePart { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "date_part" } diff --git a/datafusion/spark/src/function/datetime/date_sub.rs b/datafusion/spark/src/function/datetime/date_sub.rs index af1b8d5a4e91e..bc2025c9b2eda 100644 --- a/datafusion/spark/src/function/datetime/date_sub.rs +++ b/datafusion/spark/src/function/datetime/date_sub.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::ArrayRef; @@ -58,10 +57,6 @@ impl SparkDateSub { } impl ScalarUDFImpl for SparkDateSub { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "date_sub" } diff --git a/datafusion/spark/src/function/datetime/date_trunc.rs b/datafusion/spark/src/function/datetime/date_trunc.rs index 2199c90703b38..c8b0fbca36165 100644 --- a/datafusion/spark/src/function/datetime/date_trunc.rs +++ b/datafusion/spark/src/function/datetime/date_trunc.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::datatypes::{DataType, Field, FieldRef, TimeUnit}; @@ -62,10 +61,6 @@ impl SparkDateTrunc { } impl ScalarUDFImpl for SparkDateTrunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "date_trunc" } diff --git a/datafusion/spark/src/function/datetime/extract.rs b/datafusion/spark/src/function/datetime/extract.rs index 4bf130a73f566..70026b18ed5e7 100644 --- a/datafusion/spark/src/function/datetime/extract.rs +++ b/datafusion/spark/src/function/datetime/extract.rs @@ -15,8 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; - use arrow::array::ArrayRef; use arrow::compute::{DatePart, date_part}; use arrow::datatypes::DataType; @@ -60,10 +58,6 @@ impl SparkHour { } impl ScalarUDFImpl for SparkHour { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "hour" } @@ -111,10 +105,6 @@ impl SparkMinute { } impl ScalarUDFImpl for SparkMinute { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "minute" } @@ -162,10 +152,6 @@ impl SparkSecond { } impl ScalarUDFImpl for SparkSecond { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "second" } diff --git a/datafusion/spark/src/function/datetime/from_utc_timestamp.rs b/datafusion/spark/src/function/datetime/from_utc_timestamp.rs index 77cc66da5f37d..bfca677c1dcce 100644 --- a/datafusion/spark/src/function/datetime/from_utc_timestamp.rs +++ b/datafusion/spark/src/function/datetime/from_utc_timestamp.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::timezone::Tz; @@ -74,10 +73,6 @@ impl SparkFromUtcTimestamp { } impl ScalarUDFImpl for SparkFromUtcTimestamp { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "from_utc_timestamp" } diff --git a/datafusion/spark/src/function/datetime/last_day.rs b/datafusion/spark/src/function/datetime/last_day.rs index 4c6f731db18a6..67e7286e2567a 100644 --- a/datafusion/spark/src/function/datetime/last_day.rs +++ b/datafusion/spark/src/function/datetime/last_day.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::{ArrayRef, AsArray, Date32Array}; @@ -48,10 +47,6 @@ impl SparkLastDay { } impl ScalarUDFImpl for SparkLastDay { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "last_day" } diff --git a/datafusion/spark/src/function/datetime/make_dt_interval.rs b/datafusion/spark/src/function/datetime/make_dt_interval.rs index f00b4c5804eca..6e55cec8b110a 100644 --- a/datafusion/spark/src/function/datetime/make_dt_interval.rs +++ b/datafusion/spark/src/function/datetime/make_dt_interval.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::{ @@ -82,10 +81,6 @@ impl SparkMakeDtInterval { } impl ScalarUDFImpl for SparkMakeDtInterval { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "make_dt_interval" } diff --git a/datafusion/spark/src/function/datetime/make_interval.rs b/datafusion/spark/src/function/datetime/make_interval.rs index e4dd541793048..abbf398d53d89 100644 --- a/datafusion/spark/src/function/datetime/make_interval.rs +++ b/datafusion/spark/src/function/datetime/make_interval.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::{Array, ArrayRef, IntervalMonthDayNanoBuilder, PrimitiveArray}; @@ -106,10 +105,6 @@ impl SparkMakeInterval { } impl ScalarUDFImpl for SparkMakeInterval { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "make_interval" } diff --git a/datafusion/spark/src/function/datetime/next_day.rs b/datafusion/spark/src/function/datetime/next_day.rs index a456a78315970..a311c874b8cb4 100644 --- a/datafusion/spark/src/function/datetime/next_day.rs +++ b/datafusion/spark/src/function/datetime/next_day.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::{ArrayRef, AsArray, Date32Array, StringArrayType}; @@ -51,10 +50,6 @@ impl SparkNextDay { } impl ScalarUDFImpl for SparkNextDay { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "next_day" } diff --git a/datafusion/spark/src/function/datetime/time_trunc.rs b/datafusion/spark/src/function/datetime/time_trunc.rs index 718502a05ee6d..a66b8e94685aa 100644 --- a/datafusion/spark/src/function/datetime/time_trunc.rs +++ b/datafusion/spark/src/function/datetime/time_trunc.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::datatypes::{DataType, Field, FieldRef}; @@ -56,10 +55,6 @@ impl SparkTimeTrunc { } impl ScalarUDFImpl for SparkTimeTrunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "time_trunc" } diff --git a/datafusion/spark/src/function/datetime/to_utc_timestamp.rs b/datafusion/spark/src/function/datetime/to_utc_timestamp.rs index 0e8c267a390e1..67910ff33f1af 100644 --- a/datafusion/spark/src/function/datetime/to_utc_timestamp.rs +++ b/datafusion/spark/src/function/datetime/to_utc_timestamp.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::timezone::Tz; @@ -76,10 +75,6 @@ impl SparkToUtcTimestamp { } impl ScalarUDFImpl for SparkToUtcTimestamp { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "to_utc_timestamp" } diff --git a/datafusion/spark/src/function/datetime/trunc.rs b/datafusion/spark/src/function/datetime/trunc.rs index b584cc9a70d44..9d7da5969a525 100644 --- a/datafusion/spark/src/function/datetime/trunc.rs +++ b/datafusion/spark/src/function/datetime/trunc.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::datatypes::{DataType, Field, FieldRef, TimeUnit}; @@ -62,10 +61,6 @@ impl SparkTrunc { } impl ScalarUDFImpl for SparkTrunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "trunc" } diff --git a/datafusion/spark/src/function/datetime/unix.rs b/datafusion/spark/src/function/datetime/unix.rs index 4254b2ed85d58..6eaf3a08780bc 100644 --- a/datafusion/spark/src/function/datetime/unix.rs +++ b/datafusion/spark/src/function/datetime/unix.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::datatypes::{DataType, Field, FieldRef, TimeUnit}; @@ -55,10 +54,6 @@ impl SparkUnixDate { } impl ScalarUDFImpl for SparkUnixDate { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "unix_date" } @@ -132,10 +127,6 @@ impl SparkUnixTimestamp { } impl ScalarUDFImpl for SparkUnixTimestamp { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { self.name } diff --git a/datafusion/spark/src/function/hash/crc32.rs b/datafusion/spark/src/function/hash/crc32.rs index f079d82f9bded..2fc376abcb725 100644 --- a/datafusion/spark/src/function/hash/crc32.rs +++ b/datafusion/spark/src/function/hash/crc32.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::{ArrayRef, Int64Array}; @@ -62,10 +61,6 @@ impl SparkCrc32 { } impl ScalarUDFImpl for SparkCrc32 { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "crc32" } diff --git a/datafusion/spark/src/function/hash/sha1.rs b/datafusion/spark/src/function/hash/sha1.rs index 605d2a9567c49..dd9009eb8233f 100644 --- a/datafusion/spark/src/function/hash/sha1.rs +++ b/datafusion/spark/src/function/hash/sha1.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::{ArrayRef, StringArray}; @@ -64,10 +63,6 @@ impl SparkSha1 { } impl ScalarUDFImpl for SparkSha1 { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "sha1" } diff --git a/datafusion/spark/src/function/hash/sha2.rs b/datafusion/spark/src/function/hash/sha2.rs index 3fa41aba71b5b..38fa0cc643751 100644 --- a/datafusion/spark/src/function/hash/sha2.rs +++ b/datafusion/spark/src/function/hash/sha2.rs @@ -28,7 +28,6 @@ use datafusion_expr::{ }; use datafusion_functions::utils::make_scalar_function; use sha2::{self, Digest}; -use std::any::Any; use std::sync::Arc; /// Differs from DataFusion version in allowing array input for bit lengths, and @@ -69,10 +68,6 @@ impl SparkSha2 { } impl ScalarUDFImpl for SparkSha2 { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "sha2" } diff --git a/datafusion/spark/src/function/json/json_tuple.rs b/datafusion/spark/src/function/json/json_tuple.rs index f3ba7e91ac3da..2a7314b154042 100644 --- a/datafusion/spark/src/function/json/json_tuple.rs +++ b/datafusion/spark/src/function/json/json_tuple.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::{Array, ArrayRef, NullBufferBuilder, StringBuilder, StructArray}; @@ -63,10 +62,6 @@ impl JsonTuple { } impl ScalarUDFImpl for JsonTuple { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "json_tuple" } diff --git a/datafusion/spark/src/function/map/map_from_arrays.rs b/datafusion/spark/src/function/map/map_from_arrays.rs index 429ed272d772f..4e9b189b3ce05 100644 --- a/datafusion/spark/src/function/map/map_from_arrays.rs +++ b/datafusion/spark/src/function/map/map_from_arrays.rs @@ -15,8 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; - use crate::function::map::utils::{ get_element_type, get_list_offsets, get_list_values, map_from_keys_values_offsets_nulls, map_type_from_key_value_types, @@ -54,10 +52,6 @@ impl MapFromArrays { } impl ScalarUDFImpl for MapFromArrays { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "map_from_arrays" } diff --git a/datafusion/spark/src/function/map/map_from_entries.rs b/datafusion/spark/src/function/map/map_from_entries.rs index 6b2114863d11f..4ca4d203b69ab 100644 --- a/datafusion/spark/src/function/map/map_from_entries.rs +++ b/datafusion/spark/src/function/map/map_from_entries.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use crate::function::map::utils::{ @@ -54,10 +53,6 @@ impl MapFromEntries { } impl ScalarUDFImpl for MapFromEntries { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "map_from_entries" } diff --git a/datafusion/spark/src/function/map/str_to_map.rs b/datafusion/spark/src/function/map/str_to_map.rs index b722fb7abd6b2..c603e775a6031 100644 --- a/datafusion/spark/src/function/map/str_to_map.rs +++ b/datafusion/spark/src/function/map/str_to_map.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::collections::HashSet; use std::sync::Arc; @@ -84,10 +83,6 @@ impl SparkStrToMap { } impl ScalarUDFImpl for SparkStrToMap { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "str_to_map" } diff --git a/datafusion/spark/src/function/math/abs.rs b/datafusion/spark/src/function/math/abs.rs index 5edb40ae8ae9b..e43c64c832ce4 100644 --- a/datafusion/spark/src/function/math/abs.rs +++ b/datafusion/spark/src/function/math/abs.rs @@ -27,7 +27,6 @@ use datafusion_functions::{ downcast_named_arg, make_abs_function, make_try_abs_function, make_wrapping_abs_function, }; -use std::any::Any; use std::sync::Arc; /// Spark-compatible `abs` expression @@ -62,10 +61,6 @@ impl SparkAbs { } impl ScalarUDFImpl for SparkAbs { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "abs" } diff --git a/datafusion/spark/src/function/math/bin.rs b/datafusion/spark/src/function/math/bin.rs index 5d3ed0f77a4e1..f153b590d6ded 100644 --- a/datafusion/spark/src/function/math/bin.rs +++ b/datafusion/spark/src/function/math/bin.rs @@ -23,7 +23,6 @@ use datafusion_common::utils::take_function_args; use datafusion_common::{Result, internal_err}; use datafusion_expr::{Coercion, ScalarFunctionArgs, ScalarUDFImpl, TypeSignatureClass}; use datafusion_functions::utils::make_scalar_function; -use std::any::Any; use std::sync::Arc; /// Spark-compatible `bin` expression @@ -55,10 +54,6 @@ impl SparkBin { } impl ScalarUDFImpl for SparkBin { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "bin" } diff --git a/datafusion/spark/src/function/math/expm1.rs b/datafusion/spark/src/function/math/expm1.rs index b0b2b1a0865cd..a1090072f4909 100644 --- a/datafusion/spark/src/function/math/expm1.rs +++ b/datafusion/spark/src/function/math/expm1.rs @@ -23,7 +23,6 @@ use datafusion_common::{Result, ScalarValue}; use datafusion_expr::{ ColumnarValue, ScalarFunctionArgs, ScalarUDFImpl, Signature, Volatility, }; -use std::any::Any; use std::sync::Arc; /// @@ -47,10 +46,6 @@ impl SparkExpm1 { } impl ScalarUDFImpl for SparkExpm1 { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "expm1" } diff --git a/datafusion/spark/src/function/math/factorial.rs b/datafusion/spark/src/function/math/factorial.rs index 439e79a9dd8b2..c9405273e823b 100644 --- a/datafusion/spark/src/function/math/factorial.rs +++ b/datafusion/spark/src/function/math/factorial.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::{Array, Int64Array}; @@ -51,10 +50,6 @@ impl SparkFactorial { } impl ScalarUDFImpl for SparkFactorial { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "factorial" } diff --git a/datafusion/spark/src/function/math/hex.rs b/datafusion/spark/src/function/math/hex.rs index 06c77f37021bf..90444ba9d552a 100644 --- a/datafusion/spark/src/function/math/hex.rs +++ b/datafusion/spark/src/function/math/hex.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::str::from_utf8_unchecked; use std::sync::Arc; @@ -80,10 +79,6 @@ impl SparkHex { } impl ScalarUDFImpl for SparkHex { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "hex" } diff --git a/datafusion/spark/src/function/math/modulus.rs b/datafusion/spark/src/function/math/modulus.rs index 49657e2cb8cee..2e9fcfc09fd8f 100644 --- a/datafusion/spark/src/function/math/modulus.rs +++ b/datafusion/spark/src/function/math/modulus.rs @@ -22,7 +22,6 @@ use datafusion_common::{Result, ScalarValue, assert_eq_or_internal_err}; use datafusion_expr::{ ColumnarValue, ScalarFunctionArgs, ScalarUDFImpl, Signature, Volatility, }; -use std::any::Any; /// Spark-compatible `mod` function /// This function directly uses Arrow's arithmetic_op function for modulo operations @@ -70,10 +69,6 @@ impl SparkMod { } impl ScalarUDFImpl for SparkMod { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "mod" } @@ -120,10 +115,6 @@ impl SparkPmod { } impl ScalarUDFImpl for SparkPmod { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "pmod" } diff --git a/datafusion/spark/src/function/math/negative.rs b/datafusion/spark/src/function/math/negative.rs index 2df71b709d8c4..51e2418b85167 100644 --- a/datafusion/spark/src/function/math/negative.rs +++ b/datafusion/spark/src/function/math/negative.rs @@ -25,7 +25,6 @@ use datafusion_expr::{ ColumnarValue, ScalarFunctionArgs, ScalarUDFImpl, Signature, TypeSignature, Volatility, }; -use std::any::Any; use std::sync::Arc; /// Spark-compatible `negative` expression @@ -77,10 +76,6 @@ impl SparkNegative { } impl ScalarUDFImpl for SparkNegative { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "negative" } diff --git a/datafusion/spark/src/function/math/rint.rs b/datafusion/spark/src/function/math/rint.rs index ae1a25110ac89..3bca93b13241b 100644 --- a/datafusion/spark/src/function/math/rint.rs +++ b/datafusion/spark/src/function/math/rint.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::{Array, ArrayRef, AsArray}; @@ -51,10 +50,6 @@ impl SparkRint { } impl ScalarUDFImpl for SparkRint { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "rint" } diff --git a/datafusion/spark/src/function/math/trigonometry.rs b/datafusion/spark/src/function/math/trigonometry.rs index 85b10f5b998c6..b3853d66d9be1 100644 --- a/datafusion/spark/src/function/math/trigonometry.rs +++ b/datafusion/spark/src/function/math/trigonometry.rs @@ -23,7 +23,6 @@ use datafusion_common::{Result, ScalarValue}; use datafusion_expr::{ ColumnarValue, ScalarFunctionArgs, ScalarUDFImpl, Signature, Volatility, }; -use std::any::Any; use std::sync::Arc; static CSC_FUNCTION_NAME: &str = "csc"; @@ -49,10 +48,6 @@ impl SparkCsc { } impl ScalarUDFImpl for SparkCsc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { CSC_FUNCTION_NAME } @@ -119,10 +114,6 @@ impl SparkSec { } impl ScalarUDFImpl for SparkSec { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { SEC_FUNCTION_NAME } diff --git a/datafusion/spark/src/function/math/unhex.rs b/datafusion/spark/src/function/math/unhex.rs index dee532d818f83..f6c9e2fa27a67 100644 --- a/datafusion/spark/src/function/math/unhex.rs +++ b/datafusion/spark/src/function/math/unhex.rs @@ -27,7 +27,6 @@ use datafusion_expr::{ Coercion, ColumnarValue, ScalarFunctionArgs, ScalarUDFImpl, Signature, TypeSignatureClass, Volatility, }; -use std::any::Any; use std::sync::Arc; /// @@ -53,10 +52,6 @@ impl SparkUnhex { } impl ScalarUDFImpl for SparkUnhex { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "unhex" } diff --git a/datafusion/spark/src/function/math/width_bucket.rs b/datafusion/spark/src/function/math/width_bucket.rs index 905c108197906..839c65a3dbb96 100644 --- a/datafusion/spark/src/function/math/width_bucket.rs +++ b/datafusion/spark/src/function/math/width_bucket.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::{ @@ -117,10 +116,6 @@ impl SparkWidthBucket { } impl ScalarUDFImpl for SparkWidthBucket { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "width_bucket" } diff --git a/datafusion/spark/src/function/string/ascii.rs b/datafusion/spark/src/function/string/ascii.rs index 44e3501b86adb..f1ce41a67cf0a 100644 --- a/datafusion/spark/src/function/string/ascii.rs +++ b/datafusion/spark/src/function/string/ascii.rs @@ -26,7 +26,6 @@ use datafusion_expr::{ }; use datafusion_functions::string::ascii::ascii; use datafusion_functions::utils::make_scalar_function; -use std::any::Any; /// Spark compatible version of the [ascii] function. Differs from the [default ascii function] /// in that it is more permissive of input types, for example casting numeric input to string @@ -63,10 +62,6 @@ impl SparkAscii { } impl ScalarUDFImpl for SparkAscii { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "ascii" } diff --git a/datafusion/spark/src/function/string/base64.rs b/datafusion/spark/src/function/string/base64.rs index a171d4823b0fa..95607f374b32f 100644 --- a/datafusion/spark/src/function/string/base64.rs +++ b/datafusion/spark/src/function/string/base64.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::datatypes::DataType; @@ -59,10 +58,6 @@ impl SparkBase64 { } impl ScalarUDFImpl for SparkBase64 { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "base64" } @@ -136,10 +131,6 @@ impl SparkUnBase64 { } impl ScalarUDFImpl for SparkUnBase64 { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "unbase64" } diff --git a/datafusion/spark/src/function/string/char.rs b/datafusion/spark/src/function/string/char.rs index 16dfe0943565f..15b00ee98f5c7 100644 --- a/datafusion/spark/src/function/string/char.rs +++ b/datafusion/spark/src/function/string/char.rs @@ -20,7 +20,7 @@ use arrow::array::GenericStringBuilder; use arrow::datatypes::DataType::Int64; use arrow::datatypes::DataType::Utf8; use arrow::datatypes::{DataType, Field, FieldRef}; -use std::{any::Any, sync::Arc}; +use std::sync::Arc; use datafusion_common::{Result, ScalarValue, cast::as_int64_array, exec_err}; use datafusion_expr::{ @@ -50,10 +50,6 @@ impl CharFunc { } impl ScalarUDFImpl for CharFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "char" } diff --git a/datafusion/spark/src/function/string/concat.rs b/datafusion/spark/src/function/string/concat.rs index b2073690fc446..b2c11d5de16e2 100644 --- a/datafusion/spark/src/function/string/concat.rs +++ b/datafusion/spark/src/function/string/concat.rs @@ -23,7 +23,6 @@ use datafusion_expr::{ ColumnarValue, ScalarFunctionArgs, ScalarUDFImpl, Signature, Volatility, }; use datafusion_functions::string::concat::ConcatFunc; -use std::any::Any; use std::sync::Arc; use crate::function::null_utils::{ @@ -59,10 +58,6 @@ impl SparkConcat { } impl ScalarUDFImpl for SparkConcat { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "concat" } diff --git a/datafusion/spark/src/function/string/elt.rs b/datafusion/spark/src/function/string/elt.rs index 80090d58641f4..9d15d78543d1e 100644 --- a/datafusion/spark/src/function/string/elt.rs +++ b/datafusion/spark/src/function/string/elt.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::{ @@ -51,10 +50,6 @@ impl SparkElt { } impl ScalarUDFImpl for SparkElt { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "elt" } diff --git a/datafusion/spark/src/function/string/format_string.rs b/datafusion/spark/src/function/string/format_string.rs index 3adf508895949..a5a702dc3d7bb 100644 --- a/datafusion/spark/src/function/string/format_string.rs +++ b/datafusion/spark/src/function/string/format_string.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::fmt::Write; use std::sync::Arc; @@ -62,10 +61,6 @@ impl FormatStringFunc { } impl ScalarUDFImpl for FormatStringFunc { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "format_string" } diff --git a/datafusion/spark/src/function/string/ilike.rs b/datafusion/spark/src/function/string/ilike.rs index 0d90bd1694175..522e20aa5a733 100644 --- a/datafusion/spark/src/function/string/ilike.rs +++ b/datafusion/spark/src/function/string/ilike.rs @@ -24,7 +24,6 @@ use datafusion_expr::{ ReturnFieldArgs, ScalarFunctionArgs, ScalarUDFImpl, Signature, Volatility, }; use datafusion_functions::utils::make_scalar_function; -use std::any::Any; use std::sync::Arc; /// ILIKE function for case-insensitive pattern matching @@ -49,10 +48,6 @@ impl SparkILike { } impl ScalarUDFImpl for SparkILike { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "ilike" } diff --git a/datafusion/spark/src/function/string/length.rs b/datafusion/spark/src/function/string/length.rs index 078b294cac07d..3e519117ebd6b 100644 --- a/datafusion/spark/src/function/string/length.rs +++ b/datafusion/spark/src/function/string/length.rs @@ -66,10 +66,6 @@ impl SparkLengthFunc { } impl ScalarUDFImpl for SparkLengthFunc { - fn as_any(&self) -> &dyn std::any::Any { - self - } - fn name(&self) -> &str { "length" } diff --git a/datafusion/spark/src/function/string/like.rs b/datafusion/spark/src/function/string/like.rs index ffa1737023b61..ef4bae9f626f6 100644 --- a/datafusion/spark/src/function/string/like.rs +++ b/datafusion/spark/src/function/string/like.rs @@ -24,7 +24,6 @@ use datafusion_expr::{ ReturnFieldArgs, ScalarFunctionArgs, ScalarUDFImpl, Signature, Volatility, }; use datafusion_functions::utils::make_scalar_function; -use std::any::Any; use std::sync::Arc; /// LIKE function for case-sensitive pattern matching @@ -49,10 +48,6 @@ impl SparkLike { } impl ScalarUDFImpl for SparkLike { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "like" } diff --git a/datafusion/spark/src/function/string/luhn_check.rs b/datafusion/spark/src/function/string/luhn_check.rs index dffd4fe0ae7e2..9241f5e70d085 100644 --- a/datafusion/spark/src/function/string/luhn_check.rs +++ b/datafusion/spark/src/function/string/luhn_check.rs @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -use std::{any::Any, sync::Arc}; +use std::sync::Arc; use arrow::array::{Array, AsArray, BooleanArray}; use arrow::datatypes::DataType; @@ -56,10 +56,6 @@ impl SparkLuhnCheck { } impl ScalarUDFImpl for SparkLuhnCheck { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "luhn_check" } diff --git a/datafusion/spark/src/function/string/space.rs b/datafusion/spark/src/function/string/space.rs index 77daff28ff1a1..a231401f3eef4 100644 --- a/datafusion/spark/src/function/string/space.rs +++ b/datafusion/spark/src/function/string/space.rs @@ -25,7 +25,6 @@ use datafusion_common::{Result, ScalarValue, exec_err}; use datafusion_expr::{ ColumnarValue, ScalarFunctionArgs, ScalarUDFImpl, Signature, Volatility, }; -use std::any::Any; use std::sync::Arc; /// Spark-compatible `space` expression @@ -60,10 +59,6 @@ impl SparkSpace { } impl ScalarUDFImpl for SparkSpace { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "space" } diff --git a/datafusion/spark/src/function/string/substring.rs b/datafusion/spark/src/function/string/substring.rs index 524262b12f193..8488f2516e060 100644 --- a/datafusion/spark/src/function/string/substring.rs +++ b/datafusion/spark/src/function/string/substring.rs @@ -33,7 +33,6 @@ use datafusion_expr::{ }; use datafusion_functions::unicode::substr::{enable_ascii_fast_path, get_true_start_end}; use datafusion_functions::utils::make_scalar_function; -use std::any::Any; use std::sync::Arc; /// Spark-compatible `substring` expression @@ -86,10 +85,6 @@ impl SparkSubstring { } impl ScalarUDFImpl for SparkSubstring { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "substring" } diff --git a/datafusion/spark/src/function/url/parse_url.rs b/datafusion/spark/src/function/url/parse_url.rs index 7beb02f7750ff..48c355a9080bb 100644 --- a/datafusion/spark/src/function/url/parse_url.rs +++ b/datafusion/spark/src/function/url/parse_url.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::{ @@ -132,10 +131,6 @@ impl ParseUrl { } impl ScalarUDFImpl for ParseUrl { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "parse_url" } diff --git a/datafusion/spark/src/function/url/try_parse_url.rs b/datafusion/spark/src/function/url/try_parse_url.rs index 4f6c5bb940fec..c9cafef97ba9f 100644 --- a/datafusion/spark/src/function/url/try_parse_url.rs +++ b/datafusion/spark/src/function/url/try_parse_url.rs @@ -15,8 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; - use crate::function::url::parse_url::{ParseUrl, spark_handled_parse_url}; use arrow::array::ArrayRef; use arrow::datatypes::DataType; @@ -52,10 +50,6 @@ impl TryParseUrl { } impl ScalarUDFImpl for TryParseUrl { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "try_parse_url" } diff --git a/datafusion/spark/src/function/url/try_url_decode.rs b/datafusion/spark/src/function/url/try_url_decode.rs index 58013236d5ec9..c8c8e5aa06bce 100644 --- a/datafusion/spark/src/function/url/try_url_decode.rs +++ b/datafusion/spark/src/function/url/try_url_decode.rs @@ -15,8 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; - use arrow::array::ArrayRef; use arrow::datatypes::DataType; @@ -50,10 +48,6 @@ impl TryUrlDecode { } impl ScalarUDFImpl for TryUrlDecode { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "try_url_decode" } diff --git a/datafusion/spark/src/function/url/url_decode.rs b/datafusion/spark/src/function/url/url_decode.rs index e4a9cf6acd3e7..b64e7b57b599c 100644 --- a/datafusion/spark/src/function/url/url_decode.rs +++ b/datafusion/spark/src/function/url/url_decode.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::borrow::Cow; use std::sync::Arc; @@ -130,10 +129,6 @@ impl UrlDecode { } impl ScalarUDFImpl for UrlDecode { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "url_decode" } diff --git a/datafusion/spark/src/function/url/url_encode.rs b/datafusion/spark/src/function/url/url_encode.rs index 7292eb530a6ae..1ad2a111851ee 100644 --- a/datafusion/spark/src/function/url/url_encode.rs +++ b/datafusion/spark/src/function/url/url_encode.rs @@ -15,7 +15,6 @@ // specific language governing permissions and limitations // under the License. -use std::any::Any; use std::sync::Arc; use arrow::array::{ArrayRef, LargeStringArray, StringArray, StringViewArray}; @@ -64,10 +63,6 @@ impl UrlEncode { } impl ScalarUDFImpl for UrlEncode { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "url_encode" } diff --git a/datafusion/sql/src/unparser/expr.rs b/datafusion/sql/src/unparser/expr.rs index 503048bb3c5ea..056e36ba6a79f 100644 --- a/datafusion/sql/src/unparser/expr.rs +++ b/datafusion/sql/src/unparser/expr.rs @@ -1834,7 +1834,7 @@ impl Unparser<'_> { #[cfg(test)] mod tests { use std::ops::{Add, Sub}; - use std::{any::Any, sync::Arc, vec}; + use std::{sync::Arc, vec}; use crate::unparser::dialect::SqliteDialect; use arrow::array::{LargeListArray, ListArray}; @@ -1882,10 +1882,6 @@ mod tests { } impl ScalarUDFImpl for DummyUDF { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "dummy_udf" } diff --git a/datafusion/sql/tests/sql_integration.rs b/datafusion/sql/tests/sql_integration.rs index 9570336e995f2..55713550020b6 100644 --- a/datafusion/sql/tests/sql_integration.rs +++ b/datafusion/sql/tests/sql_integration.rs @@ -19,7 +19,6 @@ // Issue: #![expect(clippy::needless_pass_by_value)] -use std::any::Any; use std::hash::Hash; #[cfg(test)] use std::sync::Arc; @@ -3315,10 +3314,6 @@ impl DummyUDF { } impl ScalarUDFImpl for DummyUDF { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { self.name } diff --git a/datafusion/sqllogictest/src/test_context.rs b/datafusion/sqllogictest/src/test_context.rs index 8bd0cabcb05b0..a742ec7f5e182 100644 --- a/datafusion/sqllogictest/src/test_context.rs +++ b/datafusion/sqllogictest/src/test_context.rs @@ -585,10 +585,6 @@ fn register_async_abs_udf(ctx: &SessionContext) { } } impl ScalarUDFImpl for AsyncAbs { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "async_abs" } diff --git a/docs/source/library-user-guide/functions/adding-udfs.md b/docs/source/library-user-guide/functions/adding-udfs.md index 48162d6abcdfb..15db731ca3746 100644 --- a/docs/source/library-user-guide/functions/adding-udfs.md +++ b/docs/source/library-user-guide/functions/adding-udfs.md @@ -98,7 +98,6 @@ impl AddOne { /// Implement the ScalarUDFImpl trait for AddOne impl ScalarUDFImpl for AddOne { - fn as_any(&self) -> &dyn Any { self } fn name(&self) -> &str { "add_one" } fn signature(&self) -> &Signature { &self.signature } fn return_type(&self, args: &[DataType]) -> Result { @@ -161,7 +160,6 @@ We now need to register the function with DataFusion so that it can be used in t # # /// Implement the ScalarUDFImpl trait for AddOne # impl ScalarUDFImpl for AddOne { -# fn as_any(&self) -> &dyn Any { self } # fn name(&self) -> &str { "add_one" } # fn signature(&self) -> &Signature { &self.signature } # fn return_type(&self, args: &[DataType]) -> Result { @@ -411,10 +409,6 @@ impl AsyncUpper { /// Implement the normal ScalarUDFImpl trait for AsyncUpper #[async_trait] impl ScalarUDFImpl for AsyncUpper { - fn as_any(&self) -> &dyn Any { - self - } - fn name(&self) -> &str { "async_upper" } @@ -514,10 +508,6 @@ We can now transfer the async UDF into the normal scalar using `into_scalar_udf` # # #[async_trait] # impl ScalarUDFImpl for AsyncUpper { -# fn as_any(&self) -> &dyn Any { -# self -# } -# # fn name(&self) -> &str { # "async_upper" # } @@ -641,7 +631,6 @@ impl PowerFunction { } impl ScalarUDFImpl for PowerFunction { - fn as_any(&self) -> &dyn Any { self } fn name(&self) -> &str { "power" } fn signature(&self) -> &Signature { &self.signature } diff --git a/docs/source/library-user-guide/upgrading/54.0.0.md b/docs/source/library-user-guide/upgrading/54.0.0.md index 85cb8e9dd01fe..f8e091066062d 100644 --- a/docs/source/library-user-guide/upgrading/54.0.0.md +++ b/docs/source/library-user-guide/upgrading/54.0.0.md @@ -91,3 +91,47 @@ fn apply_expressions( Ok(tnr) } ``` + +### Remove `as_any` from `ScalarUDFImpl` + +Now that we have a more recent minimum version of Rust, we can take advantage of +trait upcasting for Scalar UDFs. This reduces the amount of boilerplate code that +users need to do to create a UDF. In your implementations, you can simply remove +this function. The below diff is an example from the associated PR + +```diff + impl ScalarUDFImpl for MyEq { +- fn as_any(&self) -> &dyn Any { +- self +- } +- + fn name(&self) -> &str { + "my_eq" + } + + ... + } +``` + +If you have a function that is downcasting a scalar function, you can replace +the call to `.as_any()` with `.as_ref() as &dyn Any`. For example + +**Before:** + +```rust,ignore +let is_async = func + .inner() + .as_any() + .downcast_ref::() + .is_some(); +``` + +**After:** + +```rust,ignore +let is_async = (func + .inner() + .as_ref() as &dyn Any) + .downcast_ref::() + .is_some(); +```