[x] Approx Percentile Streaming: RowMerge. This will buffer all input from lhs and rhs, until barrier comes. Then flush the data.
[x] Approx Percentile Streaming: Streaming Approx Percentile Aggregation Operator. This is for shuffle aggs.
[x] Approx Percentile Streaming: Streaming Approx Percentile Aggregation Executors. This includes partial agg and global agg executors. It's for two phase agg and will use keyedmerge to merge its results with other aggregators in the same select clause.
[x] Add Approx Percentile Cache.
[x] Handle empty state.
[x] Force output every epoch for simple agg, if there's any input at all in an epoch. This is so we can construct a full record in keyed merge for updates.
[x] Force output every epoch if any input, Vnode based two phase agg.
[ ] Ban approx percentile in force two phase group agg.
[ ] Ban distinct approx percentile.
[x] Approx Percentile Streaming: Support multiple percentiles.
Batch:
[ ] Batch simple approx percentile.
[ ] Batch two-phase approx percentile.
Test / Benchmarks:
[ ] Bench two phase simple agg approx percentile vs shuffle simple agg approx percentile.
[ ] Fuzz test against percentile_cont / percentile_disc.
[ ] Test errors for all unsupported versions of approx percentile
[ ] Test shuffle simple agg.
[ ] Test deletes for two phase stateless approx percentile.
Stream:
Batch:
Test / Benchmarks:
Optimizations:
UX Improvement:
1%
by default.Docs: