boolean traversedIterators = nextTraversedIterators; if (current == null) { current = nextTuple(); traversedIterators = this.traversedIterator; Aggregator[] rowAggregators = null; while (true) { current = nextTuple(); if (!traversedIterators || !continueAggregating(previous, current)) { break; rowAggregators = aggregate(previous); close(); // Close underlying ResultIterators to free resources sooner rather than later
private Tuple nextTuple() throws SQLException { List<PeekingResultIterator> iterators = getIterators(); while (index < iterators.size()) { PeekingResultIterator iterator = iterators.get(index); Tuple r = iterator.peek(); if (r != null) { return iterator.next(); } traversedIterator = true; iterator.close(); index++; } return null; }
@Test public void testSpanAll() throws Exception { Tuple[] results1 = new Tuple[] { new SingleKeyValueTuple(new KeyValue(B, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(2L))) }; Tuple[] results2 = new Tuple[] { new SingleKeyValueTuple(new KeyValue(B, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(3L))) }; Tuple[] results3 = new Tuple[] { new SingleKeyValueTuple(new KeyValue(B, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(4L))), }; 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(B, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(9L))), }; ClientAggregators aggregators = TestUtil.getSingleSumAggregator(getUrl(), PropertiesUtil.deepCopy(TestUtil.TEST_PROPERTIES)); ResultIterator scanner = new RowKeyOrderedAggregateResultIterator(iterators, aggregators); AssertResults.assertResults(scanner, expectedResults); }
@Override public Tuple next() throws SQLException { Tuple t = super.next(); if (t == null) { return null; } aggregate(t); return t; }
@Test public void testNoSpan() throws Exception { Tuple[] results1 = new Tuple[] { new SingleKeyValueTuple(new KeyValue(A, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(1L))), }; Tuple[] results2 = new Tuple[] { new SingleKeyValueTuple(new KeyValue(B, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(2L))) }; Tuple[] results3 = new Tuple[] { new SingleKeyValueTuple(new KeyValue(C, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(3L))), new SingleKeyValueTuple(new KeyValue(D, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(4L))), }; 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(1L))), new SingleKeyValueTuple(new KeyValue(B, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(2L))), new SingleKeyValueTuple(new KeyValue(C, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(3L))), new SingleKeyValueTuple(new KeyValue(D, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(4L))), }; ClientAggregators aggregators = TestUtil.getSingleSumAggregator(getUrl(), PropertiesUtil.deepCopy(TestUtil.TEST_PROPERTIES)); ResultIterator scanner = new RowKeyOrderedAggregateResultIterator(iterators, aggregators); AssertResults.assertResults(scanner, expectedResults); }
@Override public Tuple next() throws SQLException { Tuple t = super.next(); if (t == null) { return null; } aggregate(t); return t; }
boolean traversedIterators = nextTraversedIterators; if (current == null) { current = nextTuple(); traversedIterators = this.traversedIterator; Aggregator[] rowAggregators = null; while (true) { current = nextTuple(); if (!traversedIterators || !continueAggregating(previous, current)) { break; rowAggregators = aggregate(previous); close(); // Close underlying ResultIterators to free resources sooner rather than later
@Test public void testSpanThree() throws Exception { Tuple[] results1 = new Tuple[] { new SingleKeyValueTuple(new KeyValue(A, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(1L))), new SingleKeyValueTuple(new KeyValue(B, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(2L))) }; Tuple[] results2 = new Tuple[] { new SingleKeyValueTuple(new KeyValue(B, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(3L))) }; Tuple[] results3 = new Tuple[] { new SingleKeyValueTuple(new KeyValue(B, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(4L))), new SingleKeyValueTuple(new KeyValue(C, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(5L))), }; 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(1L))), new SingleKeyValueTuple(new KeyValue(B, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(9L))), new SingleKeyValueTuple(new KeyValue(C, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(5L))), }; ClientAggregators aggregators = TestUtil.getSingleSumAggregator(getUrl(), PropertiesUtil.deepCopy(TestUtil.TEST_PROPERTIES)); ResultIterator scanner = new RowKeyOrderedAggregateResultIterator(iterators, aggregators); AssertResults.assertResults(scanner, expectedResults); }
@Override public Tuple next() throws SQLException { Tuple t = super.next(); if (t == null) { return null; } aggregate(t); return t; }
private Tuple nextTuple() throws SQLException { List<PeekingResultIterator> iterators = getIterators(); while (index < iterators.size()) { PeekingResultIterator iterator = iterators.get(index); Tuple r = iterator.peek(); if (r != null) { return iterator.next(); } traversedIterator = true; iterator.close(); index++; } return null; }
boolean traversedIterators = nextTraversedIterators; if (current == null) { current = nextTuple(); traversedIterators = this.traversedIterator; Aggregator[] rowAggregators = null; while (true) { current = nextTuple(); if (!traversedIterators || !continueAggregating(previous, current)) { break; rowAggregators = aggregate(previous); close(); // Close underlying ResultIterators to free resources sooner rather than later
@Test public void testSpanEnd() throws Exception { Tuple[] results1 = new Tuple[] { new SingleKeyValueTuple(new KeyValue(A, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(1L))), }; Tuple[] results2 = new Tuple[] { new SingleKeyValueTuple(new KeyValue(A, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(2L))), new SingleKeyValueTuple(new KeyValue(B, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(3L))), new SingleKeyValueTuple(new KeyValue(C, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(4L))), new SingleKeyValueTuple(new KeyValue(D, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(5L))), }; Tuple[] results3 = new Tuple[] { new SingleKeyValueTuple(new KeyValue(D, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(6L))), }; 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(3L))), new SingleKeyValueTuple(new KeyValue(B, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(3L))), new SingleKeyValueTuple(new KeyValue(C, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(4L))), new SingleKeyValueTuple(new KeyValue(D, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(11L))), }; ClientAggregators aggregators = TestUtil.getSingleSumAggregator(getUrl(), PropertiesUtil.deepCopy(TestUtil.TEST_PROPERTIES)); ResultIterator scanner = new RowKeyOrderedAggregateResultIterator(iterators, aggregators); AssertResults.assertResults(scanner, expectedResults); }
private Tuple nextTuple() throws SQLException { List<PeekingResultIterator> iterators = getIterators(); while (index < iterators.size()) { PeekingResultIterator iterator = iterators.get(index); Tuple r = iterator.peek(); if (r != null) { return iterator.next(); } traversedIterator = true; iterator.close(); index++; } return null; }
aggResultIterator = new RowKeyOrderedAggregateResultIterator(iterators, aggregators); } else { aggResultIterator = new GroupedAggregatingResultIterator(
aggResultIterator = new RowKeyOrderedAggregateResultIterator(iterators, aggregators); } else { aggResultIterator = new GroupedAggregatingResultIterator(
aggResultIterator = new RowKeyOrderedAggregateResultIterator(iterators, aggregators); } else { aggResultIterator = new GroupedAggregatingResultIterator(