Skip to content
This repository was archived by the owner on Apr 7, 2026. It is now read-only.

Commit 2f9111c

Browse files
authored
Merge branch 'main' into poc_exemplars
2 parents 8ec31a1 + 55b74a5 commit 2f9111c

22 files changed

Lines changed: 285 additions & 82 deletions

File tree

.github/workflows/unmanaged_dependency_check.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,6 @@ jobs:
1717
# repository
1818
.kokoro/build.sh
1919
- name: Unmanaged dependency check
20-
uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.50.1
20+
uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.50.2
2121
with:
2222
bom-path: google-cloud-spanner-bom/pom.xml

benchmarks/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
<parent>
2525
<groupId>com.google.cloud</groupId>
2626
<artifactId>google-cloud-spanner-parent</artifactId>
27-
<version>6.97.1</version><!-- {x-version-update:google-cloud-spanner:current} -->
27+
<version>6.97.2-SNAPSHOT</version><!-- {x-version-update:google-cloud-spanner:current} -->
2828
</parent>
2929

3030
<properties>

google-cloud-spanner-bom/pom.xml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>com.google.cloud</groupId>
55
<artifactId>google-cloud-spanner-bom</artifactId>
6-
<version>6.97.1</version><!-- {x-version-update:google-cloud-spanner:current} -->
6+
<version>6.97.2-SNAPSHOT</version><!-- {x-version-update:google-cloud-spanner:current} -->
77
<packaging>pom</packaging>
88
<parent>
99
<groupId>com.google.cloud</groupId>
1010
<artifactId>sdk-platform-java-config</artifactId>
11-
<version>3.50.1</version>
11+
<version>3.50.2</version>
1212
</parent>
1313

1414
<name>Google Cloud Spanner BOM</name>
@@ -53,43 +53,43 @@
5353
<dependency>
5454
<groupId>com.google.cloud</groupId>
5555
<artifactId>google-cloud-spanner</artifactId>
56-
<version>6.97.1</version><!-- {x-version-update:google-cloud-spanner:current} -->
56+
<version>6.97.2-SNAPSHOT</version><!-- {x-version-update:google-cloud-spanner:current} -->
5757
</dependency>
5858
<dependency>
5959
<groupId>com.google.cloud</groupId>
6060
<artifactId>google-cloud-spanner</artifactId>
6161
<type>test-jar</type>
62-
<version>6.97.1</version><!-- {x-version-update:google-cloud-spanner:current} -->
62+
<version>6.97.2-SNAPSHOT</version><!-- {x-version-update:google-cloud-spanner:current} -->
6363
</dependency>
6464
<dependency>
6565
<groupId>com.google.api.grpc</groupId>
6666
<artifactId>grpc-google-cloud-spanner-v1</artifactId>
67-
<version>6.97.1</version><!-- {x-version-update:grpc-google-cloud-spanner-v1:current} -->
67+
<version>6.97.2-SNAPSHOT</version><!-- {x-version-update:grpc-google-cloud-spanner-v1:current} -->
6868
</dependency>
6969
<dependency>
7070
<groupId>com.google.api.grpc</groupId>
7171
<artifactId>grpc-google-cloud-spanner-admin-instance-v1</artifactId>
72-
<version>6.97.1</version><!-- {x-version-update:grpc-google-cloud-spanner-admin-instance-v1:current} -->
72+
<version>6.97.2-SNAPSHOT</version><!-- {x-version-update:grpc-google-cloud-spanner-admin-instance-v1:current} -->
7373
</dependency>
7474
<dependency>
7575
<groupId>com.google.api.grpc</groupId>
7676
<artifactId>grpc-google-cloud-spanner-admin-database-v1</artifactId>
77-
<version>6.97.1</version><!-- {x-version-update:grpc-google-cloud-spanner-admin-database-v1:current} -->
77+
<version>6.97.2-SNAPSHOT</version><!-- {x-version-update:grpc-google-cloud-spanner-admin-database-v1:current} -->
7878
</dependency>
7979
<dependency>
8080
<groupId>com.google.api.grpc</groupId>
8181
<artifactId>proto-google-cloud-spanner-admin-instance-v1</artifactId>
82-
<version>6.97.1</version><!-- {x-version-update:proto-google-cloud-spanner-admin-instance-v1:current} -->
82+
<version>6.97.2-SNAPSHOT</version><!-- {x-version-update:proto-google-cloud-spanner-admin-instance-v1:current} -->
8383
</dependency>
8484
<dependency>
8585
<groupId>com.google.api.grpc</groupId>
8686
<artifactId>proto-google-cloud-spanner-v1</artifactId>
87-
<version>6.97.1</version><!-- {x-version-update:proto-google-cloud-spanner-v1:current} -->
87+
<version>6.97.2-SNAPSHOT</version><!-- {x-version-update:proto-google-cloud-spanner-v1:current} -->
8888
</dependency>
8989
<dependency>
9090
<groupId>com.google.api.grpc</groupId>
9191
<artifactId>proto-google-cloud-spanner-admin-database-v1</artifactId>
92-
<version>6.97.1</version><!-- {x-version-update:proto-google-cloud-spanner-admin-database-v1:current} -->
92+
<version>6.97.2-SNAPSHOT</version><!-- {x-version-update:proto-google-cloud-spanner-admin-database-v1:current} -->
9393
</dependency>
9494
</dependencies>
9595
</dependencyManagement>

google-cloud-spanner-executor/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55
<modelVersion>4.0.0</modelVersion>
66
<groupId>com.google.cloud</groupId>
77
<artifactId>google-cloud-spanner-executor</artifactId>
8-
<version>6.97.1</version><!-- {x-version-update:google-cloud-spanner-executor:current} -->
8+
<version>6.97.2-SNAPSHOT</version><!-- {x-version-update:google-cloud-spanner-executor:current} -->
99
<packaging>jar</packaging>
1010
<name>Google Cloud Spanner Executor</name>
1111

1212
<parent>
1313
<groupId>com.google.cloud</groupId>
1414
<artifactId>google-cloud-spanner-parent</artifactId>
15-
<version>6.97.1</version><!-- {x-version-update:google-cloud-spanner:current} -->
15+
<version>6.97.2-SNAPSHOT</version><!-- {x-version-update:google-cloud-spanner:current} -->
1616
</parent>
1717

1818
<properties>

google-cloud-spanner/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>com.google.cloud</groupId>
55
<artifactId>google-cloud-spanner</artifactId>
6-
<version>6.97.1</version><!-- {x-version-update:google-cloud-spanner:current} -->
6+
<version>6.97.2-SNAPSHOT</version><!-- {x-version-update:google-cloud-spanner:current} -->
77
<packaging>jar</packaging>
88
<name>Google Cloud Spanner</name>
99
<url>https://github.com/googleapis/java-spanner</url>
1010
<description>Java idiomatic client for Google Cloud Spanner.</description>
1111
<parent>
1212
<groupId>com.google.cloud</groupId>
1313
<artifactId>google-cloud-spanner-parent</artifactId>
14-
<version>6.97.1</version><!-- {x-version-update:google-cloud-spanner:current} -->
14+
<version>6.97.2-SNAPSHOT</version><!-- {x-version-update:google-cloud-spanner:current} -->
1515
</parent>
1616
<properties>
1717
<site.installationModule>google-cloud-spanner</site.installationModule>

google-cloud-spanner/src/main/java/com/google/cloud/spanner/DatabaseClientImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ class DatabaseClientImpl implements DatabaseClient {
4848
@VisibleForTesting final MultiplexedSessionDatabaseClient multiplexedSessionDatabaseClient;
4949
@VisibleForTesting final boolean useMultiplexedSessionPartitionedOps;
5050
@VisibleForTesting final boolean useMultiplexedSessionForRW;
51-
private final int dbId;
51+
@VisibleForTesting final int dbId;
5252
private final AtomicInteger nthRequest;
5353
private final Map<String, Integer> clientIdToOrdinalMap;
5454

google-cloud-spanner/src/main/java/com/google/cloud/spanner/Options.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1098,9 +1098,6 @@ public boolean equals(Object o) {
10981098
return false;
10991099
}
11001100
RequestIdOption other = (RequestIdOption) o;
1101-
if (this.reqId == null || other.reqId == null) {
1102-
return this.reqId == null && other.reqId == null;
1103-
}
11041101
return Objects.equals(this.reqId, other.reqId);
11051102
}
11061103
}

google-cloud-spanner/src/main/java/com/google/cloud/spanner/SessionClient.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ DatabaseId getDatabaseId() {
223223
@Override
224224
public XGoogSpannerRequestId nextRequestId(long channelId, int attempt) {
225225
return XGoogSpannerRequestId.of(
226-
this.nthId, this.nthRequest.incrementAndGet(), channelId, attempt);
226+
this.nthId, channelId, this.nthRequest.incrementAndGet(), attempt);
227227
}
228228

229229
/** Create a single session. */
@@ -423,7 +423,7 @@ private List<SessionImpl> internalBatchCreateSessions(
423423
span.addAnnotation(String.format("Requesting %d sessions", sessionCount));
424424
try (IScope s = spanner.getTracer().withSpan(span)) {
425425
XGoogSpannerRequestId reqId =
426-
XGoogSpannerRequestId.of(this.nthId, this.nthRequest.incrementAndGet(), channelHint, 1);
426+
XGoogSpannerRequestId.of(this.nthId, channelHint, this.nthRequest.incrementAndGet(), 1);
427427
List<com.google.spanner.v1.Session> sessions =
428428
spanner
429429
.getRpc()

google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpc.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2042,6 +2042,7 @@ <ReqT, RespT> GrpcCallContext newCallContext(
20422042
}
20432043
}
20442044
if (options != null) {
2045+
// TODO(@odeke-em): Infer the affinity if it doesn't match up with in the request-id.
20452046
context = withRequestId(context, options);
20462047
}
20472048
context = context.withExtraHeaders(metadataProvider.newExtraHeaders(resource, projectName));

google-cloud-spanner/src/test/java/com/google/cloud/spanner/DatabaseClientImplTest.java

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2907,6 +2907,37 @@ public void testPartitionedDmlDoesNotTimeout() {
29072907
return null;
29082908
}));
29092909
assertEquals(ErrorCode.DEADLINE_EXCEEDED, e.getErrorCode());
2910+
2911+
DatabaseClientImpl dbImpl = ((DatabaseClientImpl) client);
2912+
int channelId = 0;
2913+
try (Session session = dbImpl.getSession()) {
2914+
channelId = ((PooledSessionFuture) session).getChannel();
2915+
}
2916+
int dbId = dbImpl.dbId;
2917+
long NON_DETERMINISTIC = XGoogSpannerRequestIdTest.NON_DETERMINISTIC;
2918+
XGoogSpannerRequestIdTest.MethodAndRequestId[] wantStreamingValues = {
2919+
XGoogSpannerRequestIdTest.ofMethodAndRequestId(
2920+
"google.spanner.v1.Spanner/ExecuteStreamingSql",
2921+
new XGoogSpannerRequestId(NON_DETERMINISTIC, channelId, 6, 1)),
2922+
};
2923+
if (false) { // TODO(@odeke-em): enable in next PRs.
2924+
xGoogReqIdInterceptor.checkExpectedStreamingXGoogRequestIds(wantStreamingValues);
2925+
}
2926+
2927+
XGoogSpannerRequestIdTest.MethodAndRequestId[] wantUnaryValues = {
2928+
XGoogSpannerRequestIdTest.ofMethodAndRequestId(
2929+
"google.spanner.v1.Spanner/BeginTransaction",
2930+
new XGoogSpannerRequestId(NON_DETERMINISTIC, channelId, 7, 1)),
2931+
XGoogSpannerRequestIdTest.ofMethodAndRequestId(
2932+
"google.spanner.v1.Spanner/CreateSession",
2933+
new XGoogSpannerRequestId(NON_DETERMINISTIC, 0, 1, 1)),
2934+
XGoogSpannerRequestIdTest.ofMethodAndRequestId(
2935+
"google.spanner.v1.Spanner/ExecuteSql",
2936+
new XGoogSpannerRequestId(NON_DETERMINISTIC, channelId, 8, 1)),
2937+
};
2938+
if (false) { // TODO(@odeke-em): enable in next PRs.
2939+
xGoogReqIdInterceptor.checkExpectedUnaryXGoogRequestIdsAsSuffixes(wantUnaryValues);
2940+
}
29102941
}
29112942
}
29122943

@@ -2989,6 +3020,38 @@ public void testPartitionedDmlWithHigherTimeout() {
29893020
.run(transaction -> transaction.executeUpdate(UPDATE_STATEMENT)));
29903021
assertThat(e.getErrorCode()).isEqualTo(ErrorCode.DEADLINE_EXCEEDED);
29913022
assertThat(updateCount).isEqualTo(UPDATE_COUNT);
3023+
3024+
DatabaseClientImpl dbImpl = ((DatabaseClientImpl) client);
3025+
int channelId = 0;
3026+
try (Session session = dbImpl.getSession()) {
3027+
channelId = ((PooledSessionFuture) session).getChannel();
3028+
}
3029+
int dbId = dbImpl.dbId;
3030+
long NON_DETERMINISTIC = XGoogSpannerRequestIdTest.NON_DETERMINISTIC;
3031+
XGoogSpannerRequestIdTest.MethodAndRequestId[] wantStreamingValues = {
3032+
XGoogSpannerRequestIdTest.ofMethodAndRequestId(
3033+
"google.spanner.v1.Spanner/ExecuteStreamingSql",
3034+
new XGoogSpannerRequestId(NON_DETERMINISTIC, channelId, 6, 1)),
3035+
};
3036+
3037+
if (false) { // TODO(@odeke-em): enable in next PRs.
3038+
xGoogReqIdInterceptor.checkExpectedStreamingXGoogRequestIds(wantStreamingValues);
3039+
}
3040+
3041+
XGoogSpannerRequestIdTest.MethodAndRequestId[] wantUnaryValues = {
3042+
XGoogSpannerRequestIdTest.ofMethodAndRequestId(
3043+
"google.spanner.v1.Spanner/BeginTransaction",
3044+
new XGoogSpannerRequestId(NON_DETERMINISTIC, channelId, 7, 1)),
3045+
XGoogSpannerRequestIdTest.ofMethodAndRequestId(
3046+
"google.spanner.v1.Spanner/CreateSession",
3047+
new XGoogSpannerRequestId(NON_DETERMINISTIC, 0, 1, 1)),
3048+
XGoogSpannerRequestIdTest.ofMethodAndRequestId(
3049+
"google.spanner.v1.Spanner/ExecuteSql",
3050+
new XGoogSpannerRequestId(NON_DETERMINISTIC, channelId, 8, 1)),
3051+
};
3052+
if (false) { // TODO(@odeke-em): enable in next PRs.
3053+
xGoogReqIdInterceptor.checkExpectedUnaryXGoogRequestIdsAsSuffixes(wantUnaryValues);
3054+
}
29923055
}
29933056
}
29943057

@@ -5314,6 +5377,26 @@ public void testSessionPoolExhaustedError_containsStackTraces() {
53145377
}
53155378
// Closing the transactions should return the sessions to the pool.
53165379
assertEquals(4, pool.getNumberOfSessionsInPool());
5380+
5381+
DatabaseClientImpl dbClient = (DatabaseClientImpl) client;
5382+
int channelId = 0;
5383+
try (Session session = dbClient.getSession()) {
5384+
channelId = ((PooledSessionFuture) session).getChannel();
5385+
}
5386+
int dbId = dbClient.dbId;
5387+
XGoogSpannerRequestIdTest.MethodAndRequestId[] wantStreamingValues = {};
5388+
5389+
xGoogReqIdInterceptor.checkExpectedStreamingXGoogRequestIds(wantStreamingValues);
5390+
long NON_DETERMINISTIC = XGoogSpannerRequestIdTest.NON_DETERMINISTIC;
5391+
5392+
XGoogSpannerRequestIdTest.MethodAndRequestId[] wantUnaryValues = {
5393+
XGoogSpannerRequestIdTest.ofMethodAndRequestId(
5394+
"google.spanner.v1.Spanner/CreateSession",
5395+
new XGoogSpannerRequestId(NON_DETERMINISTIC, 0, 1, 1)),
5396+
};
5397+
if (false) { // TODO(@odeke-em): enable in next PRs.
5398+
xGoogReqIdInterceptor.checkExpectedUnaryXGoogRequestIdsAsSuffixes(wantUnaryValues);
5399+
}
53175400
}
53185401
}
53195402

0 commit comments

Comments
 (0)