public static PeekingResultIterator newIterator(final List<PeekingResultIterator> concatIterators) { if (concatIterators.isEmpty()) { return PeekingResultIterator.EMPTY_ITERATOR; } if (concatIterators.size() == 1) { return concatIterators.get(0); } return new ConcatResultIterator(concatIterators); } }
@Override public final ResultIterator iterator(ParallelScanGrouper scanGrouper, Scan scan) throws SQLException { this.iterators = new UnionResultIterators(plans, parentContext); ResultIterator scanner; boolean isOrdered = !orderBy.getOrderByExpressions().isEmpty(); if (isOrdered) { // TopN scanner = new MergeSortTopNResultIterator(iterators, limit, offset, orderBy.getOrderByExpressions()); } else { scanner = new ConcatResultIterator(iterators); if (offset != null) { scanner = new OffsetResultIterator(scanner, offset); } if (limit != null) { scanner = new LimitingResultIterator(scanner, limit); } } return scanner; }
public static PeekingResultIterator newIterator(final List<PeekingResultIterator> concatIterators) { if (concatIterators.isEmpty()) { return PeekingResultIterator.EMPTY_ITERATOR; } if (concatIterators.size() == 1) { return concatIterators.get(0); } return new ConcatResultIterator(concatIterators); } }
public static PeekingResultIterator newIterator(final List<PeekingResultIterator> concatIterators) { if (concatIterators.isEmpty()) { return PeekingResultIterator.EMPTY_ITERATOR; } if (concatIterators.size() == 1) { return concatIterators.get(0); } return new ConcatResultIterator(concatIterators); } }
@Test public void testConcat() throws Throwable { Tuple[] results1 = new Tuple[] { new SingleKeyValueTuple(new KeyValue(A, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(1))), }; Tuple[] results2 = new Tuple[] { new SingleKeyValueTuple(new KeyValue(B, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(2))) }; Tuple[] results3 = new Tuple[] { new SingleKeyValueTuple(new KeyValue(A, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(3))), new SingleKeyValueTuple(new KeyValue(B, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(4))), }; final List<PeekingResultIterator>results = Arrays.asList(new PeekingResultIterator[] {new MaterializedResultIterator(Arrays.asList(results1)), new MaterializedResultIterator(Arrays.asList(results2)), new MaterializedResultIterator(Arrays.asList(results3))}); ResultIterators iterators = new MaterializedResultIterators(results); Tuple[] expectedResults = new Tuple[] { new SingleKeyValueTuple(new KeyValue(A, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(1))), new SingleKeyValueTuple(new KeyValue(B, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(2))), new SingleKeyValueTuple(new KeyValue(A, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(3))), new SingleKeyValueTuple(new KeyValue(B, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(4))), }; ResultIterator scanner = new ConcatResultIterator(iterators); AssertResults.assertResults(scanner, expectedResults); }
scans = iterators.getScans(); if (isOffsetOnServer) { scanner = new ConcatResultIterator(iterators); if (limit != null) { scanner = new LimitingResultIterator(scanner, limit); scanner = new ConcatResultIterator(iterators);
aggResultIterator = new UngroupedAggregatingResultIterator(new ConcatResultIterator(iterators), aggregators);
@Override public final ResultIterator iterator(ParallelScanGrouper scanGrouper, Scan scan) throws SQLException { this.iterators = new UnionResultIterators(plans, parentContext); ResultIterator scanner; boolean isOrdered = !orderBy.getOrderByExpressions().isEmpty(); if (isOrdered) { // TopN scanner = new MergeSortTopNResultIterator(iterators, limit, offset, orderBy.getOrderByExpressions()); } else { scanner = new ConcatResultIterator(iterators); if (offset != null) { scanner = new OffsetResultIterator(scanner, offset); } if (limit != null) { scanner = new LimitingResultIterator(scanner, limit); } } return scanner; }
@Override public final ResultIterator iterator(ParallelScanGrouper scanGrouper, Scan scan) throws SQLException { this.iterators = new UnionResultIterators(plans, parentContext); ResultIterator scanner; boolean isOrdered = !orderBy.getOrderByExpressions().isEmpty(); if (isOrdered) { // TopN scanner = new MergeSortTopNResultIterator(iterators, limit, offset, orderBy.getOrderByExpressions()); } else { scanner = new ConcatResultIterator(iterators); if (offset != null) { scanner = new OffsetResultIterator(scanner, offset); } if (limit != null) { scanner = new LimitingResultIterator(scanner, limit); } } return scanner; }
scans = iterators.getScans(); if (isOffsetOnServer) { scanner = new ConcatResultIterator(iterators); if (limit != null) { scanner = new LimitingResultIterator(scanner, limit); scanner = new ConcatResultIterator(iterators);
scans = iterators.getScans(); if (isOffsetOnServer) { scanner = new ConcatResultIterator(iterators); if (limit != null) { scanner = new LimitingResultIterator(scanner, limit); scanner = new ConcatResultIterator(iterators);
aggResultIterator = new UngroupedAggregatingResultIterator(new ConcatResultIterator(iterators), aggregators);
aggResultIterator = new UngroupedAggregatingResultIterator(new ConcatResultIterator(iterators), aggregators);