Skip to main content

Module aggregate_bridge

Module aggregate_bridge 

Source
Expand description

DataFusion aggregate bridge for streaming aggregation.

Bridges DataFusion’s Accumulator trait with laminar-core’s DynAccumulator / DynAggregatorFactory traits. This avoids duplicating aggregation logic. DataFusion Aggregate Bridge

Bridges DataFusion’s 50+ built-in aggregate functions into LaminarDB’s DynAccumulator / DynAggregatorFactory traits. This avoids reimplementing statistical functions (STDDEV, VARIANCE, PERCENTILE, etc.) that DataFusion already provides.

§Architecture

DataFusion World                 LaminarDB World
┌───────────────────┐           ┌──────────────────────┐
│ AggregateUDF      │           │ DynAggregatorFactory │
│   └─▶ Accumulator │──bridge──▶│   └─▶ DynAccumulator │
│       (ScalarValue)│           │       (ScalarResult) │
└───────────────────┘           └──────────────────────┘

§Ring Architecture

This bridge is Ring 1 (allocates, uses dynamic dispatch). Ring 0 workloads continue to use the hand-written static-dispatch aggregators.

Structs§

DataFusionAccumulatorAdapter
Adapts a DataFusion [datafusion_expr::Accumulator] into LaminarDB’s [DynAccumulator] trait.
DataFusionAggregateFactory
Factory for creating DataFusionAccumulatorAdapter instances.

Functions§

create_aggregate_factory
Creates a DataFusionAggregateFactory for a named built-in aggregate.
lookup_aggregate_udf
Looks up a DataFusion built-in aggregate function by name.
result_to_scalar_value
Converts a [ScalarResult] to a DataFusion [ScalarValue].
scalar_value_to_result
Converts a DataFusion [ScalarValue] to a LaminarDB [ScalarResult].