in tablestore/src/main/java/com/alicloud/openservices/tablestore/model/WideRowIterator.java [52:86]
void fetchData() {
GetRangeResponse result = null;
try {
result = internalClient.getRange(buildRequest(), null).get();
} catch (Exception e) {
throw new ClientException(e);
}
int idx = 0;
List<Row> rows = result.getRows();
if (!columnIterator.isComplete() && (rows.size() > 0) && (rows.get(0).getPrimaryKey().equals(columnIterator.getPrimaryKey()))) {
columnIterator.setColumnIterator(Arrays.asList(rows.get(0).getColumns()).iterator());
idx = 1;
}
List<Pair<Row, Boolean>> rowsWithStatus = new ArrayList<Pair<Row, Boolean>>();
for (int i = idx; i < rows.size(); i++) {
if ((i == (rows.size() - 1)) && (rows.get(i).getPrimaryKey().equals(result.getNextStartPrimaryKey()))) {
rowsWithStatus.add(new Pair<Row, Boolean>(rows.get(i), false));
} else {
rowsWithStatus.add(new Pair<Row, Boolean>(rows.get(i), true));
rowsRead++;
}
}
rowIterator = rowsWithStatus.iterator();
nextStartPrimaryKey = result.getNextStartPrimaryKey();
nextToken = result.getNextToken();
if (!columnIterator.isComplete()) {
if (!columnIterator.getPrimaryKey().equals(nextStartPrimaryKey)) {
columnIterator.setComplete(true);
rowsRead++;
}
}
}