Skip to content

Commit 35ea69a

Browse files
author
Ajay Kannan
committed
Add missing case for start_cursor
1 parent 0c2f9e9 commit 35ea69a

1 file changed

Lines changed: 9 additions & 2 deletions

File tree

gcloud-java-datastore/src/main/java/com/google/gcloud/datastore/QueryResultsImpl.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ class QueryResultsImpl<T> extends AbstractIterator<T> implements QueryResults<T>
3434
private Query<T> query;
3535
private ResultType<?> actualResultType;
3636
private com.google.datastore.v1beta3.QueryResultBatch queryResultBatchPb;
37+
private com.google.datastore.v1beta3.Query mostRecentQueryPb;
3738
private boolean lastBatch;
3839
private Iterator<com.google.datastore.v1beta3.EntityResult> entityResultPbIter;
3940
private ByteString cursor;
@@ -58,7 +59,7 @@ class QueryResultsImpl<T> extends AbstractIterator<T> implements QueryResults<T>
5859
if (queryResultBatchPb.getSkippedResults() > 0) {
5960
cursor = queryResultBatchPb.getSkippedCursor();
6061
} else {
61-
cursor = ByteString.EMPTY;
62+
cursor = mostRecentQueryPb.getStartCursor();
6263
}
6364
}
6465

@@ -70,7 +71,13 @@ private void sendRequest() {
7071
}
7172
requestPb.setPartitionId(partitionIdPb);
7273
query.populatePb(requestPb);
73-
queryResultBatchPb = datastore.runQuery(requestPb.build()).getBatch();
74+
com.google.datastore.v1beta3.RunQueryResponse runQueryResponsePb =
75+
datastore.runQuery(requestPb.build());
76+
queryResultBatchPb = runQueryResponsePb.getBatch();
77+
mostRecentQueryPb = runQueryResponsePb.getQuery();
78+
if (mostRecentQueryPb == null) {
79+
mostRecentQueryPb = requestPb.getQuery();
80+
}
7481
lastBatch = queryResultBatchPb.getMoreResults() != MoreResultsType.NOT_FINISHED;
7582
entityResultPbIter = queryResultBatchPb.getEntityResultsList().iterator();
7683
actualResultType = ResultType.fromPb(queryResultBatchPb.getEntityResultType());

0 commit comments

Comments
 (0)