Skip to content

Commit 9159a47

Browse files
authored
Merge branch 'main' into uuid
2 parents d8c7e50 + d782ae2 commit 9159a47

File tree

41 files changed

+352
-133
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+352
-133
lines changed

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.88.0</version><!-- {x-version-update:google-cloud-spanner:current} -->
27+
<version>6.88.1-SNAPSHOT</version><!-- {x-version-update:google-cloud-spanner:current} -->
2828
</parent>
2929

3030
<properties>

generation_config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
gapic_generator_version: 2.54.0
2-
googleapis_commitish: 554575ee8d01d277344ec704e0561e9abc7f57f3
2+
googleapis_commitish: 68b6376ca75f03094a65ec5bbbc868bd9f058ee3
33
libraries_bom_version: 26.55.0
44
libraries:
55
- api_shortname: spanner

google-cloud-spanner-bom/pom.xml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>com.google.cloud</groupId>
55
<artifactId>google-cloud-spanner-bom</artifactId>
6-
<version>6.88.0</version><!-- {x-version-update:google-cloud-spanner:current} -->
6+
<version>6.88.1-SNAPSHOT</version><!-- {x-version-update:google-cloud-spanner:current} -->
77
<packaging>pom</packaging>
88
<parent>
99
<groupId>com.google.cloud</groupId>
@@ -53,43 +53,43 @@
5353
<dependency>
5454
<groupId>com.google.cloud</groupId>
5555
<artifactId>google-cloud-spanner</artifactId>
56-
<version>6.88.0</version><!-- {x-version-update:google-cloud-spanner:current} -->
56+
<version>6.88.1-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.88.0</version><!-- {x-version-update:google-cloud-spanner:current} -->
62+
<version>6.88.1-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.88.0</version><!-- {x-version-update:grpc-google-cloud-spanner-v1:current} -->
67+
<version>6.88.1-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.88.0</version><!-- {x-version-update:grpc-google-cloud-spanner-admin-instance-v1:current} -->
72+
<version>6.88.1-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.88.0</version><!-- {x-version-update:grpc-google-cloud-spanner-admin-database-v1:current} -->
77+
<version>6.88.1-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.88.0</version><!-- {x-version-update:proto-google-cloud-spanner-admin-instance-v1:current} -->
82+
<version>6.88.1-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.88.0</version><!-- {x-version-update:proto-google-cloud-spanner-v1:current} -->
87+
<version>6.88.1-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.88.0</version><!-- {x-version-update:proto-google-cloud-spanner-admin-database-v1:current} -->
92+
<version>6.88.1-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.88.0</version><!-- {x-version-update:google-cloud-spanner-executor:current} -->
8+
<version>6.88.1-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.88.0</version><!-- {x-version-update:google-cloud-spanner:current} -->
15+
<version>6.88.1-SNAPSHOT</version><!-- {x-version-update:google-cloud-spanner:current} -->
1616
</parent>
1717

1818
<properties>

google-cloud-spanner/clirr-ignored-differences.xml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -854,12 +854,22 @@
854854
<method>java.lang.Object runTransaction(com.google.cloud.spanner.connection.Connection$TransactionCallable)</method>
855855
</difference>
856856

857-
<!-- Added external host option -->
857+
<!-- Added experimental host option -->
858858
<difference>
859859
<differenceType>7012</differenceType>
860860
<className>com/google/cloud/spanner/SpannerOptions$SpannerEnvironment</className>
861+
<method>com.google.auth.oauth2.GoogleCredentials getDefaultExperimentalHostCredentials()</method>
862+
</difference>
863+
<difference>
864+
<differenceType>7002</differenceType>
865+
<className>com/google/cloud/spanner/SpannerOptions$SpannerEnvironment</className>
861866
<method>com.google.auth.oauth2.GoogleCredentials getDefaultExternalHostCredentials()</method>
862867
</difference>
868+
<difference>
869+
<differenceType>7002</differenceType>
870+
<className>com/google/cloud/spanner/SpannerOptions</className>
871+
<method>com.google.auth.oauth2.GoogleCredentials getDefaultExternalHostCredentialsFromSysEnv()</method>
872+
</difference>
863873

864874
<!-- Default sequence kind -->
865875
<difference>

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.88.0</version><!-- {x-version-update:google-cloud-spanner:current} -->
6+
<version>6.88.1-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.88.0</version><!-- {x-version-update:google-cloud-spanner:current} -->
14+
<version>6.88.1-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/AbstractMultiplexedSessionDatabaseClient.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,6 @@
2626
*/
2727
abstract class AbstractMultiplexedSessionDatabaseClient implements DatabaseClient {
2828

29-
@Override
30-
public Dialect getDialect() {
31-
throw new UnsupportedOperationException();
32-
}
33-
3429
@Override
3530
public String getDatabaseRole() {
3631
throw new UnsupportedOperationException();

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,10 @@ private boolean canUseMultiplexedSessionsForPartitionedOps() {
132132

133133
@Override
134134
public Dialect getDialect() {
135+
MultiplexedSessionDatabaseClient client = getMultiplexedSessionDatabaseClient();
136+
if (client != null) {
137+
return client.getDialect();
138+
}
135139
return pool.getDialect();
136140
}
137141

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

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,13 @@ public void onSessionReady(SessionImpl session) {
277277
.getSkipVerifyBeginTransactionForMuxRW()) {
278278
verifyBeginTransactionWithRWOnMultiplexedSessionAsync(session.getName());
279279
}
280+
if (sessionClient
281+
.getSpanner()
282+
.getOptions()
283+
.getSessionPoolOptions()
284+
.isAutoDetectDialect()) {
285+
MAINTAINER_SERVICE.submit(() -> getDialect());
286+
}
280287
}
281288

282289
@Override
@@ -513,6 +520,30 @@ private int getSingleUseChannelHint() {
513520
}
514521
}
515522

523+
private final AbstractLazyInitializer<Dialect> dialectSupplier =
524+
new AbstractLazyInitializer<Dialect>() {
525+
@Override
526+
protected Dialect initialize() {
527+
try (ResultSet dialectResultSet =
528+
singleUse().executeQuery(SessionPool.DETERMINE_DIALECT_STATEMENT)) {
529+
if (dialectResultSet.next()) {
530+
return Dialect.fromName(dialectResultSet.getString(0));
531+
}
532+
}
533+
// This should not really happen, but it is the safest fallback value.
534+
return Dialect.GOOGLE_STANDARD_SQL;
535+
}
536+
};
537+
538+
@Override
539+
public Dialect getDialect() {
540+
try {
541+
return dialectSupplier.get();
542+
} catch (Exception exception) {
543+
throw SpannerExceptionFactory.asSpannerException(exception);
544+
}
545+
}
546+
516547
@Override
517548
public Timestamp write(Iterable<Mutation> mutations) throws SpannerException {
518549
return createMultiplexedSessionTransaction(/* singleUse = */ false).write(mutations);

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

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2256,13 +2256,9 @@ enum Position {
22562256
@VisibleForTesting
22572257
static final Statement DETERMINE_DIALECT_STATEMENT =
22582258
Statement.newBuilder(
2259-
"SELECT 'POSTGRESQL' AS DIALECT\n"
2260-
+ "FROM INFORMATION_SCHEMA.SCHEMATA\n"
2261-
+ "WHERE SCHEMA_NAME='information_schema'\n"
2262-
+ "UNION ALL\n"
2263-
+ "SELECT 'GOOGLE_STANDARD_SQL' AS DIALECT\n"
2264-
+ "FROM INFORMATION_SCHEMA.SCHEMATA\n"
2265-
+ "WHERE SCHEMA_NAME='INFORMATION_SCHEMA' AND CATALOG_NAME=''")
2259+
"select option_value "
2260+
+ "from information_schema.database_options "
2261+
+ "where option_name='database_dialect'")
22662262
.build();
22672263

22682264
private final SessionPoolOptions options;
@@ -3211,7 +3207,9 @@ public void onSessionReady(SessionImpl session) {
32113207
if (allSessions.size() >= minSessions) {
32123208
waitOnMinSessionsLatch.countDown();
32133209
}
3214-
if (options.isAutoDetectDialect() && !detectDialectStarted) {
3210+
if (options.isAutoDetectDialect()
3211+
&& !detectDialectStarted
3212+
&& !options.getUseMultiplexedSession()) {
32153213
// Get the dialect of the underlying database if that has not yet been done. Note that
32163214
// this method will release the session into the pool once it is done.
32173215
detectDialectStarted = true;

0 commit comments

Comments
 (0)