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; }
@Override public void explain(List<String> planSteps) { delegate.explain(planSteps); } }
private PeekingResultIterator currentIterator() throws SQLException { List<PeekingResultIterator> iterators = getIterators(); while (index < iterators.size()) { PeekingResultIterator iterator = iterators.get(index); Tuple r = iterator.peek(); if (r != null) { return iterator; } iterator.close(); index++; } return EMPTY_ITERATOR; }
@Override public void close() throws SQLException { // Guard against resultIterator being null if (null != resultIterator) { resultIterator.close(); } resultIterator = PeekingResultIterator.EMPTY_ITERATOR; }
@Override public Tuple peek() throws SQLException { if (tuple != null) { return tuple; } return delegate.peek(); }
@Override public Tuple next() throws SQLException { if (tuple != null) { Tuple t = tuple; tuple = null; return t; } numRecordsRead++; return delegate.next(); }
@Override public void close() throws SQLException { if (currentIterator != null) { currentIterator.close(); } }
public MaterializedComparableResultIterator(PeekingResultIterator delegate, Comparator<? super Tuple> c) throws SQLException { this.delegate = delegate; this.comparator = c; this.current = delegate.peek(); }
@Override public Tuple next() throws SQLException { return spoolFrom.next(); }
PeekingResultIterator peekingItr = iteratorFactory.newIterator(context, itr, currentScan, tableName, plan); Tuple tuple; if ((tuple = peekingItr.peek()) == null) { peekingItr.close(); continue; } else if ((remainingOffset = QueryUtil.getRemainingOffset(tuple)) != null) { peekingItr.next(); peekingItr.close(); continue;
@Override public Tuple next() throws SQLException { Tuple result = resultIterator.next(); if (result == null) { return null; } if (currentKey.get() == UNITIALIZED_KEY_BUFFER) { getGroupingKey(result, currentKey); } Aggregator[] rowAggregators = aggregators.getAggregators(); aggregators.reset(rowAggregators); while (true) { aggregators.aggregate(rowAggregators, result); Tuple nextResult = resultIterator.peek(); if (nextResult == null || !currentKey.equals(getGroupingKey(nextResult, nextKey))) { break; } result = resultIterator.next(); } byte[] value = aggregators.toBytes(rowAggregators); Tuple tuple = wrapKeyValueAsResult(PhoenixKeyValueUtil.newKeyValue(currentKey, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, AGG_TIMESTAMP, value, 0, value.length)); currentKey.set(nextKey.get(), nextKey.getOffset(), nextKey.getLength()); return tuple; }
private PriorityQueue<MaterializedComparableResultIterator> getMinHeap() throws SQLException { if (minHeap == null) { List<PeekingResultIterator> iterators = resultIterators.getIterators(); minHeap = new PriorityQueue<MaterializedComparableResultIterator>(Math.max(1, iterators.size())); for (PeekingResultIterator itr : iterators) { if (itr.peek() == null) { itr.close(); continue; } minHeap.add(new MaterializedComparableResultIterator(itr, itrComparator)); } } return minHeap; }
@Override public void close() throws SQLException { delegate.close(); }
@Override public Tuple peek() throws SQLException { return spoolFrom.peek(); }
@Override public Tuple next() throws SQLException { return getResultIterator().next(); }
@Override public void explain(List<String> planSteps) { resultIterator.explain(planSteps); }
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; }