@Override
public void addIntermediate(GroupByIdBlock groupIdsBlock, Block block)
{
BlockCursor cursor = block.cursor();
checkArgument(cursor.advanceNextPosition());
SliceInput sliceInput = new BasicSliceInput(cursor.getSlice());
Page page = Iterators.getOnlyElement(PagesSerde.readPages(sliceInput));
checkArgument(page.getChannelCount() == accumulators.size(), "number of blocks does not match accumulators");
for (int i = 0; i < page.getChannelCount(); i++) {
accumulators.get(i).addIntermediate(groupIdsBlock, page.getBlock(i));