From 87b54c9aab097d8662d88d521eb991b4251c0cfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20Heres?= Date: Wed, 5 Jul 2023 10:25:57 +0200 Subject: [PATCH] Add float support for sum --- datafusion/physical-expr/src/aggregate/sum.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/datafusion/physical-expr/src/aggregate/sum.rs b/datafusion/physical-expr/src/aggregate/sum.rs index 690415c5e27e..7b093d17d15f 100644 --- a/datafusion/physical-expr/src/aggregate/sum.rs +++ b/datafusion/physical-expr/src/aggregate/sum.rs @@ -33,7 +33,10 @@ use arrow::{ datatypes::Field, }; use arrow_array::cast::AsArray; -use arrow_array::types::{Decimal128Type, Int32Type, Int64Type, UInt32Type, UInt64Type}; +use arrow_array::types::{ + Decimal128Type, Float32Type, Float64Type, Int32Type, Int64Type, UInt32Type, + UInt64Type, +}; use arrow_array::{ArrowNativeTypeOp, ArrowNumericType, PrimitiveArray}; use datafusion_common::{downcast_value, DataFusionError, Result, ScalarValue}; use datafusion_expr::Accumulator; @@ -171,6 +174,14 @@ impl AggregateExpr for Sum { &self.data_type, &self.data_type, ))), + DataType::Float32 => Ok(Box::new(SumGroupsAccumulator::::new( + &self.data_type, + &self.data_type, + ))), + DataType::Float64 => Ok(Box::new(SumGroupsAccumulator::::new( + &self.data_type, + &self.data_type, + ))), DataType::Decimal128(_target_precision, _target_scale) => { Ok(Box::new(SumGroupsAccumulator::::new( &self.data_type,