Description
In BaseResultIterator
while (offset < nColumnsInCommon && offset < rangesListSize) { List<KeyRange> ranges = rangesList.get(offset); // We use a skip scan if we have multiple ranges or if // we have a non single key range before the last range. useSkipScan |= ranges.size() > 1 || hasRange; cnf.add(ranges); int rangeSpan = 1 + dataScanRanges.getSlotSpans()[offset]; if (offset + rangeSpan > nColumnsInCommon) { rangeSpan = nColumnsInCommon - offset; // trim range to only be rangeSpan in length ranges = Lists.newArrayListWithExpectedSize(cnf.get(cnf.size()-1).size()); for (KeyRange range : cnf.get(cnf.size()-1)) { range = clipRange(dataScanRanges.getSchema(), offset, rangeSpan, range); // trim range to be only rangeSpan in length ranges.add(range); } cnf.set(cnf.size()-1, ranges); } for (KeyRange range : ranges) { if (!range.isSingleKey()) { hasRange = true; } } slotSpan[offset] = rangeSpan - 1; offset = offset + rangeSpan; }
we can break in the inner loop and save some cycles of CPU