diff --git a/vegafusion-runtime/src/transform/pivot.rs b/vegafusion-runtime/src/transform/pivot.rs index 086112dd..ea1b720e 100644 --- a/vegafusion-runtime/src/transform/pivot.rs +++ b/vegafusion-runtime/src/transform/pivot.rs @@ -3,7 +3,6 @@ use crate::transform::aggregate::make_agg_expr_for_col_expr; use crate::transform::TransformTrait; use async_trait::async_trait; use datafusion_expr::{expr::Sort, lit, when, Expr}; -use datafusion_functions::expr_fn::coalesce; use datafusion_functions_aggregate::expr_fn::min; use std::sync::Arc; use vegafusion_common::arrow::array::StringArray; @@ -170,17 +169,15 @@ async fn pivot_case( for pivot_val in pivot_vec.iter() { let predicate_expr = unescaped_col(&tx.field).eq(lit(pivot_val.as_str())); let value_expr = unescaped_col(tx.value.as_str()); - let agg_col = when(predicate_expr, value_expr).otherwise(lit(ScalarValue::Null))?; + let agg_col = when(predicate_expr, value_expr).otherwise(if fill_zero { + // Replace null with zero for certain aggregates + lit(0) + } else { + lit(ScalarValue::Null) + })?; let agg_expr = make_agg_expr_for_col_expr(agg_col, &agg_op, &dataframe.schema_df()?)?; - // Replace null with zero for certain aggregates - let agg_expr = if fill_zero { - coalesce(vec![agg_expr, lit(0.0)]) - } else { - agg_expr - }; - // Compute pivot column name, replacing null placeholder with "null" let col_name = if pivot_val == NULL_PLACEHOLDER_NAME { NULL_NAME diff --git a/vegafusion-sql/src/compile/expr.rs b/vegafusion-sql/src/compile/expr.rs index d3856a07..c1b3a537 100644 --- a/vegafusion-sql/src/compile/expr.rs +++ b/vegafusion-sql/src/compile/expr.rs @@ -605,7 +605,6 @@ fn translate_aggregate_function( within_group: vec![], parameters: FunctionArguments::None, }); - println!("{}", fn_expr.to_string()); Ok(fn_expr) } else if let Some(transformer) = dialect.aggregate_transformers.get(fun_name) { // Supported through AST transformation