@Override public Page getOutput() { if (!finishing || noMoreOutput()) { return null; } if (outputIterator == null) { // start flushing outputIterator = topNBuilder.buildResult(); } Page output = null; if (outputIterator.hasNext()) { output = outputIterator.next(); } else { outputIterator = emptyIterator(); } updateMemoryReservation(); return output; }
@Test public void testEmptyInput() { GroupedTopNBuilder groupedTopNBuilder = new GroupedTopNBuilder( ImmutableList.of(BIGINT), (left, leftPosition, right, rightPosition) -> { throw new UnsupportedOperationException(); }, 5, false, new NoChannelGroupByHash()); assertFalse(groupedTopNBuilder.buildResult().hasNext()); }
outputIterator = groupedTopNBuilder.buildResult();
@Benchmark public List<Page> topN(BenchmarkData data) { data.getTopNBuilder().processPage(data.getPage()).process(); return ImmutableList.copyOf(data.getTopNBuilder().buildResult()); }
Iterator<Page> output = groupedTopNBuilder.buildResult(); while (output.hasNext()) { remainingRows -= output.next().getPositionCount();
unblock.set(true); assertTrue(work.process()); List<Page> output = ImmutableList.copyOf(groupedTopNBuilder.buildResult()); assertEquals(output.size(), 1);
assertBuilderSize(groupByHash, types, ImmutableList.of(4, 1, 2, 0), ImmutableList.of(2, 2, 2, 1), groupedTopNBuilder.getEstimatedSizeInBytes()); List<Page> output = ImmutableList.copyOf(groupedTopNBuilder.buildResult()); assertEquals(output.size(), 1);
assertBuilderSize(new NoChannelGroupByHash(), types, ImmutableList.of(4, 1, 1), ImmutableList.of(5), groupedTopNBuilder.getEstimatedSizeInBytes()); List<Page> output = ImmutableList.copyOf(groupedTopNBuilder.buildResult()); assertEquals(output.size(), 1);