Drive `apply_v_aggregate` over the whole single-partition row set the same way `evaluate_window_functions_value` does (push a Null cell, then fill it), returning the produced column.
(rows: &mut [Vec<Value>], cols: &HashMap<String, usize>, spec: &WindowFuncSpec)
| 447 | /// same way `evaluate_window_functions_value` does (push a Null cell, then |
| 448 | /// fill it), returning the produced column. |
| 449 | fn run_agg(rows: &mut [Vec<Value>], cols: &HashMap<String, usize>, spec: &WindowFuncSpec) { |
| 450 | let write_col = rows.first().map(|r| r.len()).unwrap_or(0); |
| 451 | for row in rows.iter_mut() { |
| 452 | row.push(Value::Null); |
| 453 | } |
| 454 | let indices: Vec<usize> = (0..rows.len()).collect(); |
| 455 | apply_v_aggregate(rows, &indices, cols, spec, write_col); |
| 456 | } |
| 457 | |
| 458 | fn frame(mode: &str, start: FrameBound, end: FrameBound) -> WindowFrame { |
| 459 | WindowFrame { |