diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java index 54b1b5ec01..fd54daa0d5 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java @@ -731,7 +731,8 @@ private Builder() { .setTotalTimeout(PRIME_REQUEST_TIMEOUT) .build()); - featureFlags = FeatureFlags.newBuilder().setReverseScans(true); + featureFlags = + FeatureFlags.newBuilder().setReverseScans(true).setLastScannedRowResponses(true); } private Builder(EnhancedBigtableStubSettings settings) { diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java index 5e6e6fbe5d..ed3cec5d95 100644 --- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java +++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java @@ -243,6 +243,7 @@ public void testFeatureFlags() throws InterruptedException, IOException, Executi FeatureFlags.parseFrom(BaseEncoding.base64Url().decode(encodedFeatureFlags)); assertThat(featureFlags.getReverseScans()).isTrue(); + assertThat(featureFlags.getLastScannedRowResponses()).isTrue(); } @Test diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/readrows/RowMergingCallableTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/readrows/RowMergingCallableTest.java index a8970db1d9..5e9ce44aeb 100644 --- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/readrows/RowMergingCallableTest.java +++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/readrows/RowMergingCallableTest.java @@ -42,9 +42,18 @@ public class RowMergingCallableTest { @Test public void scanMarker() { + ReadRowsResponse.Builder rrr = ReadRowsResponse.newBuilder(); + rrr.addChunksBuilder() + .setRowKey(ByteString.copyFromUtf8("key0")) + .setFamilyName(StringValue.of("f1")) + .setQualifier(BytesValue.of(ByteString.copyFromUtf8("q1"))) + .setCommitRow(true); + FakeStreamingApi.ServerStreamingStashCallable inner = new ServerStreamingStashCallable<>( Lists.newArrayList( + // send a row + rrr.build(), // send a scan marker ReadRowsResponse.newBuilder() .setLastScannedRowKey(ByteString.copyFromUtf8("key1")) @@ -56,6 +65,15 @@ public void scanMarker() { Truth.assertThat(results) .containsExactly( + Row.create( + ByteString.copyFromUtf8("key0"), + Lists.newArrayList( + RowCell.create( + "f1", + ByteString.copyFromUtf8("q1"), + 0, + Lists.newArrayList(), + ByteString.EMPTY))), Row.create(ByteString.copyFromUtf8("key1"), Lists.newArrayList())); }