From ba563f27611e7858daeb96000c39ac1556f2ab05 Mon Sep 17 00:00:00 2001 From: Piotr Findeisen Date: Tue, 17 Sep 2024 07:44:51 -0700 Subject: [PATCH] Remove deprecated AggregateUDF::new Deprecated since v 34. Remove it along with associated `AggregateUDFLegacyWrapper`. --- datafusion/expr/src/udaf.rs | 66 ------------------------------------- 1 file changed, 66 deletions(-) diff --git a/datafusion/expr/src/udaf.rs b/datafusion/expr/src/udaf.rs index d3eaccb2c5387..f634eb55bc47f 100644 --- a/datafusion/expr/src/udaf.rs +++ b/datafusion/expr/src/udaf.rs @@ -95,25 +95,6 @@ impl fmt::Display for AggregateUDF { } impl AggregateUDF { - /// Create a new AggregateUDF - /// - /// See [`AggregateUDFImpl`] for a more convenient way to create a - /// `AggregateUDF` using trait objects - #[deprecated(since = "34.0.0", note = "please implement AggregateUDFImpl instead")] - pub fn new( - name: &str, - signature: &Signature, - return_type: &ReturnTypeFunction, - accumulator: &AccumulatorFactoryFunction, - ) -> Self { - Self::new_from_impl(AggregateUDFLegacyWrapper { - name: name.to_owned(), - signature: signature.clone(), - return_type: Arc::clone(return_type), - accumulator: Arc::clone(accumulator), - }) - } - /// Create a new `AggregateUDF` from a `[AggregateUDFImpl]` trait object /// /// Note this is the same as using the `From` impl (`AggregateUDF::from`) @@ -731,53 +712,6 @@ impl AggregateUDFImpl for AliasedAggregateUDFImpl { } } -/// Implementation of [`AggregateUDFImpl`] that wraps the function style pointers -/// of the older API -pub struct AggregateUDFLegacyWrapper { - /// name - name: String, - /// Signature (input arguments) - signature: Signature, - /// Return type - return_type: ReturnTypeFunction, - /// actual implementation - accumulator: AccumulatorFactoryFunction, -} - -impl Debug for AggregateUDFLegacyWrapper { - fn fmt(&self, f: &mut Formatter) -> fmt::Result { - f.debug_struct("AggregateUDF") - .field("name", &self.name) - .field("signature", &self.signature) - .field("fun", &"") - .finish() - } -} - -impl AggregateUDFImpl for AggregateUDFLegacyWrapper { - fn as_any(&self) -> &dyn Any { - self - } - - fn name(&self) -> &str { - &self.name - } - - fn signature(&self) -> &Signature { - &self.signature - } - - fn return_type(&self, arg_types: &[DataType]) -> Result { - // Old API returns an Arc of the datatype for some reason - let res = (self.return_type)(arg_types)?; - Ok(res.as_ref().clone()) - } - - fn accumulator(&self, acc_args: AccumulatorArgs) -> Result> { - (self.accumulator)(acc_args) - } -} - #[cfg(test)] mod test { use crate::{AggregateUDF, AggregateUDFImpl};