protected Pair<Long, Row> computeNext() {
if (rows == null || !rows.hasNext())
return endOfData();
Row row = rows.next();
Map<String, ByteBuffer> keyColumns = new HashMap<String, ByteBuffer>();
for (String column : partitionBoundColumns.keySet())
keyColumns.put(column, row.getBytesUnsafe(column));
if (previousRowKey.isEmpty() && !keyColumns.isEmpty()) {
previousRowKey = keyColumns;
totalRead++;
} else {
for (String column : partitionBoundColumns.keySet()) {
if (BytesType.bytesCompare(keyColumns.get(column), previousRowKey.get(column)) != 0) {
previousRowKey = keyColumns;
totalRead++;
break;
}
}
}
keyId++;
return Pair.create(keyId, row);
}
}