| 68 | } |
| 69 | |
| 70 | Result<std::unique_ptr<KernelState>> ScalarAggregateKernel::MergeAll( |
| 71 | const ScalarAggregateKernel* kernel, KernelContext* ctx, |
| 72 | std::vector<std::unique_ptr<KernelState>> states) { |
| 73 | auto out = std::move(states.back()); |
| 74 | states.pop_back(); |
| 75 | ctx->SetState(out.get()); |
| 76 | for (auto& state : states) { |
| 77 | RETURN_NOT_OK(kernel->merge(ctx, std::move(*state), out.get())); |
| 78 | } |
| 79 | return out; |
| 80 | } |
| 81 | |
| 82 | // ---------------------------------------------------------------------- |
| 83 | // Some basic TypeMatcher implementations |