fn build_bucketed<G>(
    debug_name: &str,
    input: Collection<G, (Row, Row), Diff>,
    _: BucketedPlan
) -> (Arranged<G, TraceAgent<ColValSpine<Row, Row, <G as ScopeParent>::Timestamp, Diff, usize>>>, Option<Collection<G, DataflowError, Diff>>)where
    G: Scope,
    G::Timestamp: Lattice,
Expand description

Build the dataflow to compute and arrange multiple hierarchical aggregations on non-monotonic inputs.

This function renders a single reduction tree that computes aggregations with a priority queue implemented with a series of reduce operators that partition the input into buckets, and compute the aggregation over very small buckets and feed the results up to larger buckets.

Note that this implementation currently ignores the distinct bit because we currently only perform min / max hierarchically and the reduction tree efficiently suppresses non-distinct updates.