future =
* databaseAdminClient.updateDatabaseDdlCallable().futureCall(request);
diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/package-info.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/package-info.java
index e0c10822cb6..c085e0a6e6c 100644
--- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/package-info.java
+++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/package-info.java
@@ -15,7 +15,7 @@
*/
/**
- * A client to Cloud Spanner Instance Admin API
+ * A client to Cloud Spanner API
*
* The interfaces provided are listed below, along with usage samples.
*
diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/stub/HttpJsonInstanceAdminStub.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/stub/HttpJsonInstanceAdminStub.java
index 55a10bc2436..5af29072b57 100644
--- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/stub/HttpJsonInstanceAdminStub.java
+++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/admin/instance/v1/stub/HttpJsonInstanceAdminStub.java
@@ -1053,6 +1053,26 @@ protected HttpJsonInstanceAdminStub(
HttpRule.newBuilder()
.setPost("/v1/{name=projects/*/instances/*/operations/*}:cancel")
.build())
+ .addAdditionalBindings(
+ HttpRule.newBuilder()
+ .setPost(
+ "/v1/{name=projects/*/instances/*/backups/*/operations/*}:cancel")
+ .build())
+ .addAdditionalBindings(
+ HttpRule.newBuilder()
+ .setPost(
+ "/v1/{name=projects/*/instances/*/instancePartitions/*/operations/*}:cancel")
+ .build())
+ .addAdditionalBindings(
+ HttpRule.newBuilder()
+ .setPost(
+ "/v1/{name=projects/*/instanceConfigs/*/operations/*}:cancel")
+ .build())
+ .addAdditionalBindings(
+ HttpRule.newBuilder()
+ .setPost(
+ "/v1/{name=projects/*/instanceConfigs/*/ssdCaches/*/operations/*}:cancel")
+ .build())
.build())
.put(
"google.longrunning.Operations.DeleteOperation",
@@ -1062,6 +1082,25 @@ protected HttpJsonInstanceAdminStub(
HttpRule.newBuilder()
.setDelete("/v1/{name=projects/*/instances/*/operations/*}")
.build())
+ .addAdditionalBindings(
+ HttpRule.newBuilder()
+ .setDelete(
+ "/v1/{name=projects/*/instances/*/backups/*/operations/*}")
+ .build())
+ .addAdditionalBindings(
+ HttpRule.newBuilder()
+ .setDelete(
+ "/v1/{name=projects/*/instances/*/instancePartitions/*/operations/*}")
+ .build())
+ .addAdditionalBindings(
+ HttpRule.newBuilder()
+ .setDelete("/v1/{name=projects/*/instanceConfigs/*/operations/*}")
+ .build())
+ .addAdditionalBindings(
+ HttpRule.newBuilder()
+ .setDelete(
+ "/v1/{name=projects/*/instanceConfigs/*/ssdCaches/*/operations/*}")
+ .build())
.build())
.put(
"google.longrunning.Operations.GetOperation",
@@ -1071,6 +1110,24 @@ protected HttpJsonInstanceAdminStub(
HttpRule.newBuilder()
.setGet("/v1/{name=projects/*/instances/*/operations/*}")
.build())
+ .addAdditionalBindings(
+ HttpRule.newBuilder()
+ .setGet("/v1/{name=projects/*/instances/*/backups/*/operations/*}")
+ .build())
+ .addAdditionalBindings(
+ HttpRule.newBuilder()
+ .setGet(
+ "/v1/{name=projects/*/instances/*/instancePartitions/*/operations/*}")
+ .build())
+ .addAdditionalBindings(
+ HttpRule.newBuilder()
+ .setGet("/v1/{name=projects/*/instanceConfigs/*/operations/*}")
+ .build())
+ .addAdditionalBindings(
+ HttpRule.newBuilder()
+ .setGet(
+ "/v1/{name=projects/*/instanceConfigs/*/ssdCaches/*/operations/*}")
+ .build())
.build())
.put(
"google.longrunning.Operations.ListOperations",
@@ -1080,6 +1137,24 @@ protected HttpJsonInstanceAdminStub(
HttpRule.newBuilder()
.setGet("/v1/{name=projects/*/instances/*/operations}")
.build())
+ .addAdditionalBindings(
+ HttpRule.newBuilder()
+ .setGet("/v1/{name=projects/*/instances/*/backups/*/operations}")
+ .build())
+ .addAdditionalBindings(
+ HttpRule.newBuilder()
+ .setGet(
+ "/v1/{name=projects/*/instances/*/instancePartitions/*/operations}")
+ .build())
+ .addAdditionalBindings(
+ HttpRule.newBuilder()
+ .setGet("/v1/{name=projects/*/instanceConfigs/*/operations}")
+ .build())
+ .addAdditionalBindings(
+ HttpRule.newBuilder()
+ .setGet(
+ "/v1/{name=projects/*/instanceConfigs/*/ssdCaches/*/operations}")
+ .build())
.build())
.build());
diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementValueConverters.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementValueConverters.java
index 12a48541c59..7418c88f68d 100644
--- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementValueConverters.java
+++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementValueConverters.java
@@ -248,7 +248,8 @@ public Duration convert(String value) {
} else {
duration = Duration.ofMillis(Long.parseLong(value.trim()));
}
- if (duration.isZero()) {
+ // Converters should return null for invalid values.
+ if (duration.isNegative()) {
return null;
}
return duration;
diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionOptions.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionOptions.java
index 9811a946200..2c86192443d 100644
--- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionOptions.java
+++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionOptions.java
@@ -28,6 +28,7 @@
import static com.google.cloud.spanner.connection.ConnectionProperties.DATA_BOOST_ENABLED;
import static com.google.cloud.spanner.connection.ConnectionProperties.DIALECT;
import static com.google.cloud.spanner.connection.ConnectionProperties.ENABLE_API_TRACING;
+import static com.google.cloud.spanner.connection.ConnectionProperties.ENABLE_DIRECT_ACCESS;
import static com.google.cloud.spanner.connection.ConnectionProperties.ENABLE_END_TO_END_TRACING;
import static com.google.cloud.spanner.connection.ConnectionProperties.ENABLE_EXTENDED_TRACING;
import static com.google.cloud.spanner.connection.ConnectionProperties.ENCODED_CREDENTIALS;
@@ -556,7 +557,11 @@ Builder setCredentials(Credentials credentials) {
return this;
}
- Builder setStatementExecutorType(StatementExecutorType statementExecutorType) {
+ /**
+ * Sets the executor type to use for connections. See {@link StatementExecutorType} for more
+ * information on what the different options mean.
+ */
+ public Builder setStatementExecutorType(StatementExecutorType statementExecutorType) {
this.statementExecutorType = statementExecutorType;
return this;
}
@@ -920,7 +925,11 @@ CredentialsProvider getCredentialsProvider() {
return getInitialConnectionPropertyValue(CREDENTIALS_PROVIDER);
}
- StatementExecutorType getStatementExecutorType() {
+ /**
+ * Returns the executor type that is used by connections that are created from this {@link
+ * ConnectionOptions} instance.
+ */
+ public StatementExecutorType getStatementExecutorType() {
return this.statementExecutorType;
}
@@ -1073,6 +1082,10 @@ boolean isExperimentalHost() {
return getInitialConnectionPropertyValue(IS_EXPERIMENTAL_HOST);
}
+ Boolean isEnableDirectAccess() {
+ return getInitialConnectionPropertyValue(ENABLE_DIRECT_ACCESS);
+ }
+
String getClientCertificate() {
return getInitialConnectionPropertyValue(CLIENT_CERTIFICATE);
}
diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionProperties.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionProperties.java
index d9610a5a08a..ac53b800bb5 100644
--- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionProperties.java
+++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionProperties.java
@@ -183,6 +183,20 @@ public class ConnectionProperties {
BOOLEANS,
BooleanConverter.INSTANCE,
Context.STARTUP);
+ static final ConnectionProperty ENABLE_DIRECT_ACCESS =
+ create(
+ "enableDirectAccess",
+ "Configure the connection to try to connect to Spanner using "
+ + "DirectPath (true/false). The client will try to connect to Spanner "
+ + "using a direct Google network connection. DirectPath will work only "
+ + "if the client is trying to establish a connection from a Google Cloud VM. "
+ + "Otherwise it will automatically fallback to the standard network path. "
+ + "NOTE: The default for this property is currently false, "
+ + "but this could be changed in the future.",
+ null,
+ BOOLEANS,
+ BooleanConverter.INSTANCE,
+ Context.STARTUP);
static final ConnectionProperty USE_AUTO_SAVEPOINTS_FOR_EMULATOR =
create(
"useAutoSavepointsForEmulator",
diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutorImpl.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutorImpl.java
index 1f4d8f5cf22..ae88bcc6ffe 100644
--- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutorImpl.java
+++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutorImpl.java
@@ -361,7 +361,7 @@ public StatementResult statementShowReturnCommitStats() {
@Override
public StatementResult statementSetMaxCommitDelay(Duration duration) {
- getConnection().setMaxCommitDelay(duration == null || duration.isZero() ? null : duration);
+ getConnection().setMaxCommitDelay(duration);
return noResult(SET_MAX_COMMIT_DELAY);
}
diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/DdlClient.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/DdlClient.java
index ef7ad7e5cdb..d8dcb3c6ae3 100644
--- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/DdlClient.java
+++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/DdlClient.java
@@ -35,6 +35,7 @@
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Consumer;
import java.util.function.Supplier;
+import java.util.stream.Collectors;
/**
* Convenience class for executing Data Definition Language statements on transactions that support
@@ -137,7 +138,21 @@ OperationFuture executeDdl(
dbBuilder.setProtoDescriptors(protoDescriptors);
}
Database db = dbBuilder.build();
- return dbAdminClient.updateDatabaseDdl(db, statements, null);
+ return dbAdminClient.updateDatabaseDdl(
+ db,
+ statements.stream().map(DdlClient::stripTrailingSemicolon).collect(Collectors.toList()),
+ null);
+ }
+
+ static String stripTrailingSemicolon(String input) {
+ if (!input.contains(";")) {
+ return input;
+ }
+ String trimmed = input.trim();
+ if (trimmed.endsWith(";")) {
+ return trimmed.substring(0, trimmed.length() - 1);
+ }
+ return input;
}
/** Returns true if the statement is a `CREATE DATABASE ...` statement. */
diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/SpannerPool.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/SpannerPool.java
index 60b1acfb60a..b21e8c84db0 100644
--- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/SpannerPool.java
+++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/SpannerPool.java
@@ -163,6 +163,8 @@ static class SpannerPoolKey {
private final boolean enableEndToEndTracing;
private final String clientCertificate;
private final String clientCertificateKey;
+ private final boolean isExperimentalHost;
+ private final Boolean enableDirectAccess;
@VisibleForTesting
static SpannerPoolKey of(ConnectionOptions options) {
@@ -196,6 +198,8 @@ private SpannerPoolKey(ConnectionOptions options) throws IOException {
this.enableEndToEndTracing = options.isEndToEndTracingEnabled();
this.clientCertificate = options.getClientCertificate();
this.clientCertificateKey = options.getClientCertificateKey();
+ this.isExperimentalHost = options.isExperimentalHost();
+ this.enableDirectAccess = options.isEnableDirectAccess();
}
@Override
@@ -220,7 +224,9 @@ public boolean equals(Object o) {
&& Objects.equals(this.enableApiTracing, other.enableApiTracing)
&& Objects.equals(this.enableEndToEndTracing, other.enableEndToEndTracing)
&& Objects.equals(this.clientCertificate, other.clientCertificate)
- && Objects.equals(this.clientCertificateKey, other.clientCertificateKey);
+ && Objects.equals(this.clientCertificateKey, other.clientCertificateKey)
+ && Objects.equals(this.isExperimentalHost, other.isExperimentalHost)
+ && Objects.equals(this.enableDirectAccess, other.enableDirectAccess);
}
@Override
@@ -241,7 +247,9 @@ public int hashCode() {
this.enableApiTracing,
this.enableEndToEndTracing,
this.clientCertificate,
- this.clientCertificateKey);
+ this.clientCertificateKey,
+ this.isExperimentalHost,
+ this.enableDirectAccess);
}
}
@@ -405,6 +413,12 @@ Spanner createSpanner(SpannerPoolKey key, ConnectionOptions options) {
if (key.clientCertificate != null && key.clientCertificateKey != null) {
builder.useClientCert(key.clientCertificate, key.clientCertificateKey);
}
+ if (key.isExperimentalHost) {
+ builder.setExperimentalHost(key.host);
+ }
+ if (key.enableDirectAccess != null) {
+ builder.setEnableDirectAccess(key.enableDirectAccess);
+ }
if (options.getConfigurator() != null) {
options.getConfigurator().configure(builder);
}
diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/StatementExecutor.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/StatementExecutor.java
index 6e410f31e83..b022158b917 100644
--- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/StatementExecutor.java
+++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/StatementExecutor.java
@@ -172,9 +172,23 @@ private static ListeningExecutorService createExecutorService(StatementExecutorT
*/
private final List interceptors;
- enum StatementExecutorType {
+ /** The executor type that is used for statements that are executed on a connection. */
+ public enum StatementExecutorType {
+ /**
+ * Use a platform thread per connection. This allows async execution of statements, but costs
+ * more resources than the other options.
+ */
PLATFORM_THREAD,
+ /**
+ * Use a virtual thread per connection. This allows async execution of statements. Virtual
+ * threads are only supported on Java 21 and higher.
+ */
VIRTUAL_THREAD,
+ /**
+ * Use the calling thread for execution. This does not support async execution of statements.
+ * This option is used by drivers that do not support async execution, such as JDBC and
+ * PGAdapter.
+ */
DIRECT_EXECUTOR,
}
diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpc.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpc.java
index fa5719c95c4..5abf3ea98e7 100644
--- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpc.java
+++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpc.java
@@ -71,6 +71,7 @@
import com.google.cloud.spanner.SpannerOptions;
import com.google.cloud.spanner.SpannerOptions.CallContextConfigurator;
import com.google.cloud.spanner.SpannerOptions.CallCredentialsProvider;
+import com.google.cloud.spanner.XGoogSpannerRequestId;
import com.google.cloud.spanner.admin.database.v1.stub.DatabaseAdminStub;
import com.google.cloud.spanner.admin.database.v1.stub.DatabaseAdminStubSettings;
import com.google.cloud.spanner.admin.database.v1.stub.GrpcDatabaseAdminCallableFactory;
@@ -85,9 +86,8 @@
import com.google.common.base.Function;
import com.google.common.base.MoreObjects;
import com.google.common.base.Preconditions;
-import com.google.common.base.Supplier;
-import com.google.common.base.Suppliers;
import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.io.Resources;
import com.google.common.util.concurrent.RateLimiter;
@@ -193,6 +193,7 @@
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.time.Duration;
+import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
@@ -236,6 +237,7 @@ public class GapicSpannerRpc implements SpannerRpc {
private static final String CLIENT_LIBRARY_LANGUAGE = "spanner-java";
public static final String DEFAULT_USER_AGENT =
CLIENT_LIBRARY_LANGUAGE + "/" + GaxProperties.getLibraryVersion(GapicSpannerRpc.class);
+ public static boolean DIRECTPATH_CHANNEL_CREATED = false;
private static final String API_FILE = "grpc-gcp-apiconfig.json";
private boolean rpcIsClosed;
@@ -278,8 +280,6 @@ public class GapicSpannerRpc implements SpannerRpc {
private final int numChannels;
private final boolean isGrpcGcpExtensionEnabled;
- private Supplier directPathEnabledSupplier = () -> false;
-
private final GrpcCallContext baseGrpcCallContext;
public static GapicSpannerRpc create(SpannerOptions options) {
@@ -358,19 +358,20 @@ public GapicSpannerRpc(final SpannerOptions options) {
SpannerInterceptorProvider.create(
MoreObjects.firstNonNull(
options.getInterceptorProvider(),
- SpannerInterceptorProvider.createDefault(
- options.getOpenTelemetry(),
- (() -> directPathEnabledSupplier.get()))))
+ SpannerInterceptorProvider.createDefault(options.getOpenTelemetry())))
// This sets the trace context headers.
.withTraceContext(endToEndTracingEnabled, options.getOpenTelemetry())
// This sets the response compressor (Server -> Client).
.withEncoding(compressorName))
.setHeaderProvider(headerProviderWithUserAgent)
.setAllowNonDefaultServiceAccount(true);
- String directPathXdsEnv = System.getenv("GOOGLE_SPANNER_ENABLE_DIRECT_ACCESS");
- boolean isAttemptDirectPathXds = Boolean.parseBoolean(directPathXdsEnv);
- if (isAttemptDirectPathXds) {
+ boolean isEnableDirectAccess = options.isEnableDirectAccess();
+ if (isEnableDirectAccess) {
defaultChannelProviderBuilder.setAttemptDirectPath(true);
+ // This will let the credentials try to fetch a hard-bound access token if the runtime
+ // environment supports it.
+ defaultChannelProviderBuilder.setAllowHardBoundTokenTypes(
+ Collections.singletonList(InstantiatingGrpcChannelProvider.HardBoundTokenTypes.ALTS));
defaultChannelProviderBuilder.setAttemptDirectPathXds();
}
@@ -408,6 +409,8 @@ public GapicSpannerRpc(final SpannerOptions options) {
final String emulatorHost = System.getenv("SPANNER_EMULATOR_HOST");
try {
+ // TODO: make our retry settings to inject and increment
+ // XGoogSpannerRequestId whenever a retry occurs.
SpannerStubSettings spannerStubSettings =
options.getSpannerStubSettings().toBuilder()
.setTransportChannelProvider(channelProvider)
@@ -421,12 +424,9 @@ public GapicSpannerRpc(final SpannerOptions options) {
this.spannerStub =
GrpcSpannerStubWithStubSettingsAndClientContext.create(
spannerStubSettings, clientContext);
- this.directPathEnabledSupplier =
- Suppliers.memoize(
- () -> {
- return ((GrpcTransportChannel) clientContext.getTransportChannel()).isDirectPath()
- && isAttemptDirectPathXds;
- });
+ DIRECTPATH_CHANNEL_CREATED =
+ ((GrpcTransportChannel) clientContext.getTransportChannel()).isDirectPath()
+ && isEnableDirectAccess;
this.readRetrySettings =
options.getSpannerStubSettings().streamingReadSettings().getRetrySettings();
this.readRetryableCodes =
@@ -678,7 +678,13 @@ private static boolean isEmulatorEnabled(SpannerOptions options, String emulator
}
public static boolean isEnableAFEServerTiming() {
- return "false".equalsIgnoreCase(System.getenv("SPANNER_DISABLE_AFE_SERVER_TIMING"));
+ // Enable AFE metrics as default unless explicitly
+ // disabled via env.
+ return !Boolean.parseBoolean(System.getenv("SPANNER_DISABLE_AFE_SERVER_TIMING"));
+ }
+
+ public static boolean isEnableDirectPathXdsEnv() {
+ return Boolean.parseBoolean(System.getenv("GOOGLE_SPANNER_ENABLE_DIRECT_ACCESS"));
}
private static final RetrySettings ADMIN_REQUESTS_LIMIT_EXCEEDED_RETRY_SETTINGS =
@@ -1647,7 +1653,7 @@ public Session createSession(
@Nullable Map labels,
@Nullable Map options)
throws SpannerException {
- // By default sessions are not multiplexed
+ // By default, sessions are not multiplexed
return createSession(databaseName, databaseRole, labels, options, false);
}
@@ -2018,11 +2024,12 @@ GrpcCallContext newCallContext(
MethodDescriptor method,
boolean routeToLeader) {
GrpcCallContext context = this.baseGrpcCallContext;
- if (options != null) {
+ Long affinity = options == null ? null : Option.CHANNEL_HINT.getLong(options);
+ if (affinity != null) {
if (this.isGrpcGcpExtensionEnabled) {
// Set channel affinity in gRPC-GCP.
// Compute bounded channel hint to prevent gRPC-GCP affinity map from getting unbounded.
- int boundedChannelHint = Option.CHANNEL_HINT.getLong(options).intValue() % this.numChannels;
+ int boundedChannelHint = affinity.intValue() % this.numChannels;
context =
context.withCallOptions(
context
@@ -2031,9 +2038,12 @@ GrpcCallContext newCallContext(
GcpManagedChannel.AFFINITY_KEY, String.valueOf(boundedChannelHint)));
} else {
// Set channel affinity in GAX.
- context = context.withChannelAffinity(Option.CHANNEL_HINT.getLong(options).intValue());
+ context = context.withChannelAffinity(affinity.intValue());
}
}
+ if (options != null) {
+ context = withRequestId(context, options);
+ }
context = context.withExtraHeaders(metadataProvider.newExtraHeaders(resource, projectName));
if (routeToLeader && leaderAwareRoutingEnabled) {
context = context.withExtraHeaders(metadataProvider.newRouteToLeaderHeader());
@@ -2053,6 +2063,19 @@ GrpcCallContext newCallContext(
return (GrpcCallContext) context.merge(apiCallContextFromContext);
}
+ GrpcCallContext withRequestId(GrpcCallContext context, Map options) {
+ XGoogSpannerRequestId reqId = (XGoogSpannerRequestId) options.get(Option.REQUEST_ID);
+ if (reqId == null) {
+ return context;
+ }
+
+ Map> withReqId =
+ ImmutableMap.of(
+ XGoogSpannerRequestId.REQUEST_HEADER_KEY.name(),
+ Collections.singletonList(reqId.toString()));
+ return context.withExtraHeaders(withReqId);
+ }
+
void registerResponseObserver(SpannerResponseObserver responseObserver) {
responseObservers.add(responseObserver);
}
diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/HeaderInterceptor.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/HeaderInterceptor.java
index 0f132593565..01aa28d8d93 100644
--- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/HeaderInterceptor.java
+++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/HeaderInterceptor.java
@@ -56,7 +56,6 @@
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ExecutionException;
-import java.util.function.Supplier;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Matcher;
@@ -76,7 +75,7 @@ class HeaderInterceptor implements ClientInterceptor {
private static final Metadata.Key GOOGLE_CLOUD_RESOURCE_PREFIX_KEY =
Metadata.Key.of("google-cloud-resource-prefix", Metadata.ASCII_STRING_MARSHALLER);
private static final Pattern SERVER_TIMING_PATTERN =
- Pattern.compile("(?[a-zA-Z0-9_-]+);\\s*dur=(?\\d+)");
+ Pattern.compile("(?[a-zA-Z0-9_-]+);\\s*dur=(?\\d+(\\.\\d+)?)");
private static final Pattern GOOGLE_CLOUD_RESOURCE_PREFIX_PATTERN =
Pattern.compile(
".*projects/(?\\p{ASCII}[^/]*)(/instances/(?\\p{ASCII}[^/]*))?(/databases/(?\\p{ASCII}[^/]*))?");
@@ -99,12 +98,8 @@ class HeaderInterceptor implements ClientInterceptor {
private static final Level LEVEL = Level.INFO;
private final SpannerRpcMetrics spannerRpcMetrics;
- private final Supplier directPathEnabledSupplier;
-
- HeaderInterceptor(
- SpannerRpcMetrics spannerRpcMetrics, Supplier directPathEnabledSupplier) {
+ HeaderInterceptor(SpannerRpcMetrics spannerRpcMetrics) {
this.spannerRpcMetrics = spannerRpcMetrics;
- this.directPathEnabledSupplier = directPathEnabledSupplier;
}
@Override
@@ -133,7 +128,8 @@ public void onHeaders(Metadata metadata) {
Boolean isDirectPathUsed =
isDirectPathUsed(getAttributes().get(Grpc.TRANSPORT_ATTR_REMOTE_ADDR));
addDirectPathUsedAttribute(compositeTracer, isDirectPathUsed);
- processHeader(metadata, tagContext, attributes, span, compositeTracer);
+ processHeader(
+ metadata, tagContext, attributes, span, compositeTracer, isDirectPathUsed);
super.onHeaders(metadata);
}
},
@@ -151,7 +147,8 @@ private void processHeader(
TagContext tagContext,
Attributes attributes,
Span span,
- CompositeTracer compositeTracer) {
+ CompositeTracer compositeTracer,
+ boolean isDirectPathUsed) {
MeasureMap measureMap = STATS_RECORDER.newMeasureMap();
String serverTiming = metadata.get(SERVER_TIMING_HEADER_KEY);
try {
@@ -162,17 +159,17 @@ private void processHeader(
// would fail to parse it correctly. To make the parsing more robust, the logic has been
// updated to handle multiple metrics gracefully.
- Map serverTimingMetrics = parseServerTimingHeader(serverTiming);
+ Map serverTimingMetrics = parseServerTimingHeader(serverTiming);
if (serverTimingMetrics.containsKey(GFE_TIMING_HEADER)) {
- long gfeLatency = serverTimingMetrics.get(GFE_TIMING_HEADER);
+ float gfeLatency = serverTimingMetrics.get(GFE_TIMING_HEADER);
- measureMap.put(SPANNER_GFE_LATENCY, gfeLatency);
+ measureMap.put(SPANNER_GFE_LATENCY, (long) gfeLatency);
measureMap.put(SPANNER_GFE_HEADER_MISSING_COUNT, 0L);
measureMap.record(tagContext);
- spannerRpcMetrics.recordGfeLatency(gfeLatency, attributes);
+ spannerRpcMetrics.recordGfeLatency((long) gfeLatency, attributes);
spannerRpcMetrics.recordGfeHeaderMissingCount(0L, attributes);
- if (compositeTracer != null) {
+ if (compositeTracer != null && !isDirectPathUsed) {
compositeTracer.recordGFELatency(gfeLatency);
}
if (span != null) {
@@ -181,7 +178,7 @@ private void processHeader(
} else {
measureMap.put(SPANNER_GFE_HEADER_MISSING_COUNT, 1L).record(tagContext);
spannerRpcMetrics.recordGfeHeaderMissingCount(1L, attributes);
- if (compositeTracer != null) {
+ if (compositeTracer != null && !isDirectPathUsed) {
compositeTracer.recordGfeHeaderMissingCount(1L);
}
}
@@ -189,7 +186,7 @@ private void processHeader(
// Record AFE metrics
if (compositeTracer != null && GapicSpannerRpc.isEnableAFEServerTiming()) {
if (serverTimingMetrics.containsKey(AFE_TIMING_HEADER)) {
- long afeLatency = serverTimingMetrics.get(AFE_TIMING_HEADER);
+ float afeLatency = serverTimingMetrics.get(AFE_TIMING_HEADER);
compositeTracer.recordAFELatency(afeLatency);
} else {
compositeTracer.recordAfeHeaderMissingCount(1L);
@@ -200,8 +197,8 @@ private void processHeader(
}
}
- private Map parseServerTimingHeader(String serverTiming) {
- Map serverTimingMetrics = new HashMap<>();
+ private Map parseServerTimingHeader(String serverTiming) {
+ Map serverTimingMetrics = new HashMap<>();
if (serverTiming != null) {
Matcher matcher = SERVER_TIMING_PATTERN.matcher(serverTiming);
while (matcher.find()) {
@@ -209,7 +206,7 @@ private Map parseServerTimingHeader(String serverTiming) {
String durationStr = matcher.group("duration");
if (metricName != null && durationStr != null) {
- serverTimingMetrics.put(metricName, Long.valueOf(durationStr));
+ serverTimingMetrics.put(metricName, Float.valueOf(durationStr));
}
}
}
@@ -291,7 +288,7 @@ private Map getBuiltInMetricAttributes(String key, DatabaseName
BuiltInMetricsConstant.INSTANCE_ID_KEY.getKey(), databaseName.getInstance());
attributes.put(
BuiltInMetricsConstant.DIRECT_PATH_ENABLED_KEY.getKey(),
- String.valueOf(this.directPathEnabledSupplier.get()));
+ String.valueOf(GapicSpannerRpc.DIRECTPATH_CHANNEL_CREATED));
return attributes;
});
}
diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/SpannerInterceptorProvider.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/SpannerInterceptorProvider.java
index c3c05b8af15..ec7a4e54a03 100644
--- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/SpannerInterceptorProvider.java
+++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/SpannerInterceptorProvider.java
@@ -56,14 +56,14 @@ public static SpannerInterceptorProvider createDefault(OpenTelemetry openTelemet
}));
}
+ @ObsoleteApi("DirectPathEnabledSupplier is not used")
public static SpannerInterceptorProvider createDefault(
OpenTelemetry openTelemetry, Supplier directPathEnabledSupplier) {
List defaultInterceptorList = new ArrayList<>();
defaultInterceptorList.add(new SpannerErrorInterceptor());
defaultInterceptorList.add(
new LoggingInterceptor(Logger.getLogger(GapicSpannerRpc.class.getName()), Level.FINER));
- defaultInterceptorList.add(
- new HeaderInterceptor(new SpannerRpcMetrics(openTelemetry), directPathEnabledSupplier));
+ defaultInterceptorList.add(new HeaderInterceptor(new SpannerRpcMetrics(openTelemetry)));
return new SpannerInterceptorProvider(ImmutableList.copyOf(defaultInterceptorList));
}
diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/SpannerRpc.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/SpannerRpc.java
index 73671b91ff7..4b5682bb2b0 100644
--- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/SpannerRpc.java
+++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/SpannerRpc.java
@@ -78,7 +78,8 @@
public interface SpannerRpc extends ServiceRpc {
/** Options passed in {@link SpannerRpc} methods to control how an RPC is issued. */
enum Option {
- CHANNEL_HINT("Channel Hint");
+ CHANNEL_HINT("Channel Hint"),
+ REQUEST_ID("Request Id");
private final String value;
diff --git a/google-cloud-spanner/src/main/resources/META-INF/native-image/com.google.cloud.spanner.v1/reflect-config.json b/google-cloud-spanner/src/main/resources/META-INF/native-image/com.google.cloud.spanner.v1/reflect-config.json
index 20a93919949..90fb979315e 100644
--- a/google-cloud-spanner/src/main/resources/META-INF/native-image/com.google.cloud.spanner.v1/reflect-config.json
+++ b/google-cloud-spanner/src/main/resources/META-INF/native-image/com.google.cloud.spanner.v1/reflect-config.json
@@ -1403,6 +1403,222 @@
"allDeclaredClasses": true,
"allPublicClasses": true
},
+ {
+ "name": "com.google.spanner.v1.ChangeStreamRecord",
+ "queryAllDeclaredConstructors": true,
+ "queryAllPublicConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "allPublicMethods": true,
+ "allDeclaredClasses": true,
+ "allPublicClasses": true
+ },
+ {
+ "name": "com.google.spanner.v1.ChangeStreamRecord$Builder",
+ "queryAllDeclaredConstructors": true,
+ "queryAllPublicConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "allPublicMethods": true,
+ "allDeclaredClasses": true,
+ "allPublicClasses": true
+ },
+ {
+ "name": "com.google.spanner.v1.ChangeStreamRecord$DataChangeRecord",
+ "queryAllDeclaredConstructors": true,
+ "queryAllPublicConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "allPublicMethods": true,
+ "allDeclaredClasses": true,
+ "allPublicClasses": true
+ },
+ {
+ "name": "com.google.spanner.v1.ChangeStreamRecord$DataChangeRecord$Builder",
+ "queryAllDeclaredConstructors": true,
+ "queryAllPublicConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "allPublicMethods": true,
+ "allDeclaredClasses": true,
+ "allPublicClasses": true
+ },
+ {
+ "name": "com.google.spanner.v1.ChangeStreamRecord$DataChangeRecord$ColumnMetadata",
+ "queryAllDeclaredConstructors": true,
+ "queryAllPublicConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "allPublicMethods": true,
+ "allDeclaredClasses": true,
+ "allPublicClasses": true
+ },
+ {
+ "name": "com.google.spanner.v1.ChangeStreamRecord$DataChangeRecord$ColumnMetadata$Builder",
+ "queryAllDeclaredConstructors": true,
+ "queryAllPublicConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "allPublicMethods": true,
+ "allDeclaredClasses": true,
+ "allPublicClasses": true
+ },
+ {
+ "name": "com.google.spanner.v1.ChangeStreamRecord$DataChangeRecord$Mod",
+ "queryAllDeclaredConstructors": true,
+ "queryAllPublicConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "allPublicMethods": true,
+ "allDeclaredClasses": true,
+ "allPublicClasses": true
+ },
+ {
+ "name": "com.google.spanner.v1.ChangeStreamRecord$DataChangeRecord$Mod$Builder",
+ "queryAllDeclaredConstructors": true,
+ "queryAllPublicConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "allPublicMethods": true,
+ "allDeclaredClasses": true,
+ "allPublicClasses": true
+ },
+ {
+ "name": "com.google.spanner.v1.ChangeStreamRecord$DataChangeRecord$ModType",
+ "queryAllDeclaredConstructors": true,
+ "queryAllPublicConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "allPublicMethods": true,
+ "allDeclaredClasses": true,
+ "allPublicClasses": true
+ },
+ {
+ "name": "com.google.spanner.v1.ChangeStreamRecord$DataChangeRecord$ModValue",
+ "queryAllDeclaredConstructors": true,
+ "queryAllPublicConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "allPublicMethods": true,
+ "allDeclaredClasses": true,
+ "allPublicClasses": true
+ },
+ {
+ "name": "com.google.spanner.v1.ChangeStreamRecord$DataChangeRecord$ModValue$Builder",
+ "queryAllDeclaredConstructors": true,
+ "queryAllPublicConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "allPublicMethods": true,
+ "allDeclaredClasses": true,
+ "allPublicClasses": true
+ },
+ {
+ "name": "com.google.spanner.v1.ChangeStreamRecord$DataChangeRecord$ValueCaptureType",
+ "queryAllDeclaredConstructors": true,
+ "queryAllPublicConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "allPublicMethods": true,
+ "allDeclaredClasses": true,
+ "allPublicClasses": true
+ },
+ {
+ "name": "com.google.spanner.v1.ChangeStreamRecord$HeartbeatRecord",
+ "queryAllDeclaredConstructors": true,
+ "queryAllPublicConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "allPublicMethods": true,
+ "allDeclaredClasses": true,
+ "allPublicClasses": true
+ },
+ {
+ "name": "com.google.spanner.v1.ChangeStreamRecord$HeartbeatRecord$Builder",
+ "queryAllDeclaredConstructors": true,
+ "queryAllPublicConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "allPublicMethods": true,
+ "allDeclaredClasses": true,
+ "allPublicClasses": true
+ },
+ {
+ "name": "com.google.spanner.v1.ChangeStreamRecord$PartitionEndRecord",
+ "queryAllDeclaredConstructors": true,
+ "queryAllPublicConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "allPublicMethods": true,
+ "allDeclaredClasses": true,
+ "allPublicClasses": true
+ },
+ {
+ "name": "com.google.spanner.v1.ChangeStreamRecord$PartitionEndRecord$Builder",
+ "queryAllDeclaredConstructors": true,
+ "queryAllPublicConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "allPublicMethods": true,
+ "allDeclaredClasses": true,
+ "allPublicClasses": true
+ },
+ {
+ "name": "com.google.spanner.v1.ChangeStreamRecord$PartitionEventRecord",
+ "queryAllDeclaredConstructors": true,
+ "queryAllPublicConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "allPublicMethods": true,
+ "allDeclaredClasses": true,
+ "allPublicClasses": true
+ },
+ {
+ "name": "com.google.spanner.v1.ChangeStreamRecord$PartitionEventRecord$Builder",
+ "queryAllDeclaredConstructors": true,
+ "queryAllPublicConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "allPublicMethods": true,
+ "allDeclaredClasses": true,
+ "allPublicClasses": true
+ },
+ {
+ "name": "com.google.spanner.v1.ChangeStreamRecord$PartitionEventRecord$MoveInEvent",
+ "queryAllDeclaredConstructors": true,
+ "queryAllPublicConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "allPublicMethods": true,
+ "allDeclaredClasses": true,
+ "allPublicClasses": true
+ },
+ {
+ "name": "com.google.spanner.v1.ChangeStreamRecord$PartitionEventRecord$MoveInEvent$Builder",
+ "queryAllDeclaredConstructors": true,
+ "queryAllPublicConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "allPublicMethods": true,
+ "allDeclaredClasses": true,
+ "allPublicClasses": true
+ },
+ {
+ "name": "com.google.spanner.v1.ChangeStreamRecord$PartitionEventRecord$MoveOutEvent",
+ "queryAllDeclaredConstructors": true,
+ "queryAllPublicConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "allPublicMethods": true,
+ "allDeclaredClasses": true,
+ "allPublicClasses": true
+ },
+ {
+ "name": "com.google.spanner.v1.ChangeStreamRecord$PartitionEventRecord$MoveOutEvent$Builder",
+ "queryAllDeclaredConstructors": true,
+ "queryAllPublicConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "allPublicMethods": true,
+ "allDeclaredClasses": true,
+ "allPublicClasses": true
+ },
+ {
+ "name": "com.google.spanner.v1.ChangeStreamRecord$PartitionStartRecord",
+ "queryAllDeclaredConstructors": true,
+ "queryAllPublicConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "allPublicMethods": true,
+ "allDeclaredClasses": true,
+ "allPublicClasses": true
+ },
+ {
+ "name": "com.google.spanner.v1.ChangeStreamRecord$PartitionStartRecord$Builder",
+ "queryAllDeclaredConstructors": true,
+ "queryAllPublicConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "allPublicMethods": true,
+ "allDeclaredClasses": true,
+ "allPublicClasses": true
+ },
{
"name": "com.google.spanner.v1.CommitRequest",
"queryAllDeclaredConstructors": true,
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/AbstractNettyMockServerTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/AbstractNettyMockServerTest.java
index afb550b5c6a..a763f98cf0f 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/AbstractNettyMockServerTest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/AbstractNettyMockServerTest.java
@@ -31,7 +31,7 @@
import java.util.Random;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
-import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.AtomicReference;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
@@ -44,11 +44,10 @@ abstract class AbstractNettyMockServerTest {
protected static InetSocketAddress address;
static ExecutorService executor;
protected static LocalChannelProvider channelProvider;
- protected static AtomicInteger fakeServerTiming =
- new AtomicInteger(new Random().nextInt(1000) + 1);
-
- protected static AtomicInteger fakeAFEServerTiming =
- new AtomicInteger(new Random().nextInt(500) + 1);
+ protected static final AtomicReference fakeServerTiming =
+ new AtomicReference<>((float) (new Random().nextDouble() * 1000) + 1);
+ protected static final AtomicReference fakeAFEServerTiming =
+ new AtomicReference<>((float) new Random().nextInt(500) + 1);
protected Spanner spanner;
@@ -76,7 +75,7 @@ public void sendHeaders(Metadata headers) {
headers.put(
Metadata.Key.of("server-timing", Metadata.ASCII_STRING_MARSHALLER),
String.format(
- "afe; dur=%d, gfet4t7; dur=%d",
+ "afe; dur=%f, gfet4t7; dur=%f",
fakeAFEServerTiming.get(), fakeServerTiming.get()));
super.sendHeaders(headers);
}
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/DatabaseClientImplTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/DatabaseClientImplTest.java
index 6ceb3e979bf..fa90dd0fe13 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/DatabaseClientImplTest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/DatabaseClientImplTest.java
@@ -34,6 +34,7 @@
import static org.junit.Assert.assertTrue;
import static org.junit.Assume.assumeFalse;
import static org.junit.Assume.assumeTrue;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -105,6 +106,7 @@
import io.grpc.Metadata;
import io.grpc.MethodDescriptor;
import io.grpc.Server;
+import io.grpc.ServerInterceptors;
import io.grpc.Status;
import io.grpc.StatusRuntimeException;
import io.grpc.inprocess.InProcessServerBuilder;
@@ -119,6 +121,7 @@
import java.util.Arrays;
import java.util.Base64;
import java.util.Collections;
+import java.util.HashSet;
import java.util.List;
import java.util.Random;
import java.util.Set;
@@ -128,6 +131,7 @@
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.AtomicLong;
import java.util.function.Function;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -152,6 +156,7 @@ public class DatabaseClientImplTest {
private static final String DATABASE_NAME =
String.format(
"projects/%s/instances/%s/databases/%s", TEST_PROJECT, TEST_INSTANCE, TEST_DATABASE);
+ private static XGoogSpannerRequestIdTest.ServerHeaderEnforcer xGoogReqIdInterceptor;
private static MockSpannerServiceImpl mockSpanner;
private static Server server;
private static LocalChannelProvider channelProvider;
@@ -220,13 +225,33 @@ public static void startStaticServer() throws IOException {
StatementResult.query(SELECT1_FROM_TABLE, MockSpannerTestUtil.SELECT1_RESULTSET));
mockSpanner.setBatchWriteResult(BATCH_WRITE_RESPONSES);
+ Set checkMethods =
+ new HashSet(
+ Arrays.asList(
+ "google.spanner.v1.Spanner/BatchCreateSessions",
+ "google.spanner.v1.Spanner/BatchWrite",
+ "google.spanner.v1.Spanner/BeginTransaction",
+ "google.spanner.v1.Spanner/Commit",
+ "google.spanner.v1.Spanner/CreateSession",
+ "google.spanner.v1.Spanner/DeleteSession",
+ "google.spanner.v1.Spanner/ExecuteBatchDml",
+ "google.spanner.v1.Spanner/ExecuteSql",
+ "google.spanner.v1.Spanner/ExecuteStreamingSql",
+ "google.spanner.v1.Spanner/GetSession",
+ "google.spanner.v1.Spanner/ListSessions",
+ "google.spanner.v1.Spanner/PartitionQuery",
+ "google.spanner.v1.Spanner/PartitionRead",
+ "google.spanner.v1.Spanner/Read",
+ "google.spanner.v1.Spanner/Rollback",
+ "google.spanner.v1.Spanner/StreamingRead"));
+ xGoogReqIdInterceptor = new XGoogSpannerRequestIdTest.ServerHeaderEnforcer(checkMethods);
executor = Executors.newSingleThreadExecutor();
String uniqueName = InProcessServerBuilder.generateName();
server =
InProcessServerBuilder.forName(uniqueName)
// We need to use a real executor for timeouts to occur.
.scheduledExecutorService(new ScheduledThreadPoolExecutor(1))
- .addService(mockSpanner)
+ .addService(ServerInterceptors.intercept(mockSpanner, xGoogReqIdInterceptor))
.build()
.start();
channelProvider = LocalChannelProvider.create(uniqueName);
@@ -264,6 +289,7 @@ public void tearDown() {
spanner.close();
spannerWithEmptySessionPool.close();
mockSpanner.reset();
+ xGoogReqIdInterceptor.reset();
mockSpanner.removeAllExecutionTimes();
}
@@ -1391,6 +1417,8 @@ public void testWriteAtLeastOnceAborted() {
List commitRequests = mockSpanner.getRequestsOfType(CommitRequest.class);
assertEquals(2, commitRequests.size());
+ // TODO(@odeke-em): Enable in later PR.
+ // xGoogReqIdInterceptor.assertIntegrity();
}
@Test
@@ -5197,6 +5225,27 @@ public void testRetryOnResourceExhausted() {
}
}
+ @Test
+ public void testSelectHasXGoogRequestIdHeader() {
+ Statement statement =
+ Statement.newBuilder("select id from test where b=@p1")
+ .bind("p1")
+ .toBytesArray(
+ Arrays.asList(ByteArray.copyFrom("test1"), null, ByteArray.copyFrom("test2")))
+ .build();
+ mockSpanner.putStatementResult(StatementResult.query(statement, SELECT1_RESULTSET));
+ DatabaseClient client =
+ spanner.getDatabaseClient(DatabaseId.of(TEST_PROJECT, TEST_INSTANCE, TEST_DATABASE));
+ try (ResultSet resultSet = client.singleUse().executeQuery(statement)) {
+ assertTrue(resultSet.next());
+ assertEquals(1L, resultSet.getLong(0));
+ assertFalse(resultSet.next());
+ } finally {
+ // TODO(@odeke-em): Enable in later PR.
+ // xGoogReqIdInterceptor.assertIntegrity();
+ }
+ }
+
@Test
public void testSessionPoolExhaustedError_containsStackTraces() {
assumeFalse(
@@ -5590,4 +5639,74 @@ private boolean isMultiplexedSessionsEnabledForRW() {
}
return spanner.getOptions().getSessionPoolOptions().getUseMultiplexedSessionForRW();
}
+
+ @Test
+ public void testdbIdFromClientId() {
+ SessionPool pool = mock(SessionPool.class);
+ PooledSessionFuture session = mock(PooledSessionFuture.class);
+ when(pool.getSession()).thenReturn(session);
+ TransactionOption option = mock(TransactionOption.class);
+ DatabaseClientImpl client = new DatabaseClientImpl(pool, mock(TraceWrapper.class));
+
+ for (int i = 0; i < 10; i++) {
+ String dbId = String.format("%d", i);
+ int id = client.dbIdFromClientId(dbId);
+ assertEquals(id, i + 2); // There was already 1 dbId after new DatabaseClientImpl.
+ }
+ }
+
+ @Test
+ public void testrunWithSessionRetry_withRequestId() {
+ // Tests that DatabaseClientImpl.runWithSessionRetry correctly returns a XGoogSpannerRequestId
+ // and correctly increases its nthRequest ordinal number and that attempts stay at 1, given
+ // a fresh session returned on SessionNotFoundException.
+ SessionPool pool = mock(SessionPool.class);
+ PooledSessionFuture sessionFut = mock(PooledSessionFuture.class);
+ when(pool.getSession()).thenReturn(sessionFut);
+ SessionPool.PooledSession pooledSession = mock(SessionPool.PooledSession.class);
+ when(sessionFut.get()).thenReturn(pooledSession);
+ SessionPool.PooledSessionReplacementHandler sessionReplacementHandler =
+ mock(SessionPool.PooledSessionReplacementHandler.class);
+ when(pool.getPooledSessionReplacementHandler()).thenReturn(sessionReplacementHandler);
+ when(sessionReplacementHandler.replaceSession(any(), any())).thenReturn(sessionFut);
+ DatabaseClientImpl client = new DatabaseClientImpl(pool, mock(TraceWrapper.class));
+
+ // 1. Run with no fail runs a single attempt.
+ final AtomicInteger nCalls = new AtomicInteger(0);
+ client.runWithSessionRetry(
+ (session, reqId) -> {
+ assertEquals(reqId.getAttempt(), 1);
+ nCalls.incrementAndGet();
+ return 1;
+ });
+ assertEquals(nCalls.get(), 1);
+
+ // Reset the call counter.
+ nCalls.set(0);
+
+ // 2. Run with SessionNotFoundException and ensure that a fresh requestId is returned each time.
+ SessionNotFoundException excSessionNotFound =
+ SpannerExceptionFactoryTest.newSessionNotFoundException(
+ "projects/p/instances/i/databases/d/sessions/s");
+
+ final AtomicLong priorNthRequest = new AtomicLong(client.getNthRequest());
+ client.runWithSessionRetry(
+ (session, reqId) -> {
+ // Monotonically increasing priorNthRequest.
+ assertEquals(reqId.getNthRequest() - priorNthRequest.get(), 1);
+ priorNthRequest.set(reqId.getNthRequest());
+
+ // Attempts stay at 1 since with a SessionNotFound exception,
+ // a fresh requestId is generated.
+ assertEquals(reqId.getAttempt(), 1);
+
+ if (nCalls.addAndGet(1) < 4) {
+ throw excSessionNotFound;
+ }
+
+ return 1;
+ });
+
+ assertEquals(nCalls.get(), 4);
+ }
}
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/GceTestEnvConfig.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/GceTestEnvConfig.java
index efb012ba8e2..fab0e453f5a 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/GceTestEnvConfig.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/GceTestEnvConfig.java
@@ -46,7 +46,7 @@ public class GceTestEnvConfig implements TestEnvConfig {
public static final String GCE_CREDENTIALS_FILE = "spanner.gce.config.credentials_file";
public static final String GCE_STREAM_BROKEN_PROBABILITY =
"spanner.gce.config.stream_broken_probability";
- public static final String ATTEMPT_DIRECT_PATH = "spanner.attempt_directpath";
+ public static final String ENABLE_DIRECT_ACCESS = "spanner.enable_direct_access";
public static final String DIRECT_PATH_TEST_SCENARIO = "spanner.directpath_test_scenario";
// IP address prefixes allocated for DirectPath backends.
@@ -64,7 +64,7 @@ public GceTestEnvConfig() {
double errorProbability =
Double.parseDouble(System.getProperty(GCE_STREAM_BROKEN_PROBABILITY, "0.0"));
checkState(errorProbability <= 1.0);
- boolean attemptDirectPath = Boolean.getBoolean(ATTEMPT_DIRECT_PATH);
+ boolean enableDirectAccess = Boolean.getBoolean(ENABLE_DIRECT_ACCESS);
String directPathTestScenario = System.getProperty(DIRECT_PATH_TEST_SCENARIO, "");
SpannerOptions.Builder builder =
SpannerOptions.newBuilder()
@@ -85,7 +85,7 @@ public GceTestEnvConfig() {
}
SpannerInterceptorProvider interceptorProvider =
SpannerInterceptorProvider.createDefault().with(new GrpcErrorInjector(errorProbability));
- if (attemptDirectPath) {
+ if (enableDirectAccess) {
interceptorProvider =
interceptorProvider.with(new DirectPathAddressCheckInterceptor(directPathTestScenario));
}
@@ -93,7 +93,7 @@ public GceTestEnvConfig() {
// DirectPath tests need to set a custom endpoint to the ChannelProvider
InstantiatingGrpcChannelProvider.Builder customChannelProviderBuilder =
InstantiatingGrpcChannelProvider.newBuilder();
- if (attemptDirectPath) {
+ if (enableDirectAccess) {
customChannelProviderBuilder
.setEndpoint(DIRECT_PATH_ENDPOINT)
.setAttemptDirectPath(true)
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/MultiplexedSessionDatabaseClientMockServerTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/MultiplexedSessionDatabaseClientMockServerTest.java
index d0841e3ac40..0448656475a 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/MultiplexedSessionDatabaseClientMockServerTest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/MultiplexedSessionDatabaseClientMockServerTest.java
@@ -27,6 +27,7 @@
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertThrows;
import static org.junit.Assert.assertTrue;
+import static org.junit.Assume.assumeFalse;
import com.google.api.core.ApiFuture;
import com.google.api.core.ApiFutures;
@@ -69,6 +70,7 @@ public class MultiplexedSessionDatabaseClientMockServerTest extends AbstractMock
@BeforeClass
public static void setupResults() {
+ assumeFalse(TestHelper.isMultiplexSessionDisabled());
mockSpanner.putStatementResults(
StatementResult.query(STATEMENT, new RandomResultSetGenerator(1).generate()));
mockSpanner.putStatementResult(StatementResult.update(UPDATE_STATEMENT, UPDATE_COUNT));
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/OpenTelemetryBuiltInMetricsTracerTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/OpenTelemetryBuiltInMetricsTracerTest.java
index 9392e202b7a..4145713c7f7 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/OpenTelemetryBuiltInMetricsTracerTest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/OpenTelemetryBuiltInMetricsTracerTest.java
@@ -25,7 +25,6 @@
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.junit.Assume.assumeFalse;
-import static org.junit.Assume.assumeTrue;
import com.google.api.gax.longrunning.OperationTimedPollAlgorithm;
import com.google.api.gax.retrying.RetrySettings;
@@ -50,7 +49,6 @@
import io.opentelemetry.sdk.metrics.data.MetricData;
import io.opentelemetry.sdk.testing.exporter.InMemoryMetricReader;
import java.io.IOException;
-import java.lang.reflect.Field;
import java.net.InetSocketAddress;
import java.time.Duration;
import java.util.Collection;
@@ -84,7 +82,7 @@ public class OpenTelemetryBuiltInMetricsTracerTest extends AbstractNettyMockServ
Attributes.builder().put(BuiltInMetricsConstant.DIRECT_PATH_USED_KEY, "false").build();
;
- private static final long MIN_LATENCY = 0;
+ private static final double MIN_LATENCY = 0;
private DatabaseClient client;
@@ -159,7 +157,7 @@ public void testMetricsSingleUseQuery() {
assertFalse(resultSet.next());
}
- long elapsed = stopwatch.elapsed(TimeUnit.MILLISECONDS);
+ double elapsed = stopwatch.elapsed(TimeUnit.MILLISECONDS);
Attributes expectedAttributes =
expectedCommonBaseAttributes.toBuilder()
.putAll(expectedCommonRequestAttributes)
@@ -170,13 +168,14 @@ public void testMetricsSingleUseQuery() {
MetricData operationLatencyMetricData =
getMetricData(metricReader, BuiltInMetricsConstant.OPERATION_LATENCIES_NAME);
assertNotNull(operationLatencyMetricData);
- long operationLatencyValue = getAggregatedValue(operationLatencyMetricData, expectedAttributes);
+ double operationLatencyValue =
+ getAggregatedValue(operationLatencyMetricData, expectedAttributes);
assertThat(operationLatencyValue).isIn(Range.closed(MIN_LATENCY, elapsed));
MetricData attemptLatencyMetricData =
getMetricData(metricReader, BuiltInMetricsConstant.ATTEMPT_LATENCIES_NAME);
assertNotNull(attemptLatencyMetricData);
- long attemptLatencyValue = getAggregatedValue(attemptLatencyMetricData, expectedAttributes);
+ double attemptLatencyValue = getAggregatedValue(attemptLatencyMetricData, expectedAttributes);
assertThat(attemptLatencyValue).isIn(Range.closed(MIN_LATENCY, elapsed));
MetricData operationCountMetricData =
@@ -189,16 +188,15 @@ public void testMetricsSingleUseQuery() {
assertNotNull(attemptCountMetricData);
assertThat(getAggregatedValue(attemptCountMetricData, expectedAttributes)).isEqualTo(1);
- MetricData gfeLatencyMetricData =
- getMetricData(metricReader, BuiltInMetricsConstant.GFE_LATENCIES_NAME);
- long gfeLatencyValue = getAggregatedValue(gfeLatencyMetricData, expectedAttributes);
- assertEquals(fakeServerTiming.get(), gfeLatencyValue, 0);
-
assertFalse(
checkIfMetricExists(metricReader, BuiltInMetricsConstant.GFE_CONNECTIVITY_ERROR_NAME));
- assertFalse(checkIfMetricExists(metricReader, BuiltInMetricsConstant.AFE_LATENCIES_NAME));
assertFalse(
checkIfMetricExists(metricReader, BuiltInMetricsConstant.AFE_CONNECTIVITY_ERROR_NAME));
+ // AFE metrics are enabled for DirectPath.
+ MetricData afeLatencyMetricData =
+ getMetricData(metricReader, BuiltInMetricsConstant.AFE_LATENCIES_NAME);
+ double afeLatencyValue = getAggregatedValue(afeLatencyMetricData, expectedAttributes);
+ assertEquals(fakeAFEServerTiming.get(), afeLatencyValue, 1e-6);
}
private boolean isJava8() {
@@ -209,76 +207,6 @@ private boolean isWindows() {
return System.getProperty("os.name").toLowerCase().contains("windows");
}
- @Test
- public void testMetricsSingleUseQueryWithAfeEnabled() throws Exception {
- assumeTrue(isJava8() && !isWindows());
- assumeFalse(System.getenv().containsKey("SPANNER_DISABLE_AFE_SERVER_TIMING"));
-
- Class> classOfMap = System.getenv().getClass();
- Field field = classOfMap.getDeclaredField("m");
- field.setAccessible(true);
- Map writeableEnvironmentVariables =
- (Map) field.get(System.getenv());
-
- try {
- writeableEnvironmentVariables.put("SPANNER_DISABLE_AFE_SERVER_TIMING", "false");
-
- Stopwatch stopwatch = Stopwatch.createStarted();
- try (ResultSet resultSet = client.singleUse().executeQuery(SELECT_RANDOM)) {
- assertTrue(resultSet.next());
- assertFalse(resultSet.next());
- }
-
- long elapsed = stopwatch.elapsed(TimeUnit.MILLISECONDS);
- Attributes expectedAttributes =
- expectedCommonBaseAttributes.toBuilder()
- .putAll(expectedCommonRequestAttributes)
- .put(BuiltInMetricsConstant.STATUS_KEY, "OK")
- .put(BuiltInMetricsConstant.METHOD_KEY, "Spanner.ExecuteStreamingSql")
- .build();
-
- MetricData operationLatencyMetricData =
- getMetricData(metricReader, BuiltInMetricsConstant.OPERATION_LATENCIES_NAME);
- assertNotNull(operationLatencyMetricData);
- long operationLatencyValue =
- getAggregatedValue(operationLatencyMetricData, expectedAttributes);
- assertThat(operationLatencyValue).isIn(Range.closed(MIN_LATENCY, elapsed));
-
- MetricData attemptLatencyMetricData =
- getMetricData(metricReader, BuiltInMetricsConstant.ATTEMPT_LATENCIES_NAME);
- assertNotNull(attemptLatencyMetricData);
- long attemptLatencyValue = getAggregatedValue(attemptLatencyMetricData, expectedAttributes);
- assertThat(attemptLatencyValue).isIn(Range.closed(MIN_LATENCY, elapsed));
-
- MetricData operationCountMetricData =
- getMetricData(metricReader, BuiltInMetricsConstant.OPERATION_COUNT_NAME);
- assertNotNull(operationCountMetricData);
- assertThat(getAggregatedValue(operationCountMetricData, expectedAttributes)).isEqualTo(1);
-
- MetricData attemptCountMetricData =
- getMetricData(metricReader, BuiltInMetricsConstant.ATTEMPT_COUNT_NAME);
- assertNotNull(attemptCountMetricData);
- assertThat(getAggregatedValue(attemptCountMetricData, expectedAttributes)).isEqualTo(1);
-
- MetricData gfeLatencyMetricData =
- getMetricData(metricReader, BuiltInMetricsConstant.GFE_LATENCIES_NAME);
- long gfeLatencyValue = getAggregatedValue(gfeLatencyMetricData, expectedAttributes);
- assertEquals(fakeServerTiming.get(), gfeLatencyValue, 0);
-
- assertFalse(
- checkIfMetricExists(metricReader, BuiltInMetricsConstant.GFE_CONNECTIVITY_ERROR_NAME));
-
- MetricData afeLatencyMetricData =
- getMetricData(metricReader, BuiltInMetricsConstant.AFE_LATENCIES_NAME);
- long afeLatencyValue = getAggregatedValue(afeLatencyMetricData, expectedAttributes);
- assertEquals(fakeAFEServerTiming.get(), afeLatencyValue, 0);
- assertFalse(
- checkIfMetricExists(metricReader, BuiltInMetricsConstant.AFE_CONNECTIVITY_ERROR_NAME));
- } finally {
- writeableEnvironmentVariables.remove("GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS");
- }
- }
-
@Test
public void testMetricsWithGaxRetryUnaryRpc() {
Stopwatch stopwatch = Stopwatch.createStarted();
@@ -328,6 +256,7 @@ public void testMetricsWithGaxRetryUnaryRpc() {
@Test
public void testNoNetworkConnection() {
+ assumeFalse(TestHelper.isMultiplexSessionDisabled());
// Create a Spanner instance that tries to connect to a server that does not exist.
// This simulates a bad network connection.
SpannerOptions.Builder builder = SpannerOptions.newBuilder();
@@ -402,7 +331,7 @@ public void testNoNetworkConnection() {
// Attempt count should have a failed metric point for CreateSession.
assertEquals(
- 1, getAggregatedValue(attemptCountMetricData, expectedAttributesCreateSessionFailed));
+ 1, getAggregatedValue(attemptCountMetricData, expectedAttributesCreateSessionFailed), 0);
}
@Test
@@ -444,13 +373,12 @@ public void testNoServerTimingHeader() throws IOException, InterruptedException
.put(BuiltInMetricsConstant.METHOD_KEY, "Spanner.ExecuteSql")
.build();
- MetricData gfeConnectivityMetricData =
- getMetricData(metricReader, BuiltInMetricsConstant.GFE_CONNECTIVITY_ERROR_NAME);
- assertThat(getAggregatedValue(gfeConnectivityMetricData, expectedAttributes)).isEqualTo(1);
assertFalse(checkIfMetricExists(metricReader, BuiltInMetricsConstant.AFE_LATENCIES_NAME));
assertFalse(checkIfMetricExists(metricReader, BuiltInMetricsConstant.GFE_LATENCIES_NAME));
- assertFalse(
- checkIfMetricExists(metricReader, BuiltInMetricsConstant.AFE_CONNECTIVITY_ERROR_NAME));
+ MetricData afeConnectivityMetricData =
+ getMetricData(metricReader, BuiltInMetricsConstant.AFE_CONNECTIVITY_ERROR_NAME);
+ assertThat(getAggregatedValue(afeConnectivityMetricData, expectedAttributes)).isEqualTo(1);
+
spannerNoHeader.close();
serverNoHeader.shutdown();
serverNoHeader.awaitTermination();
@@ -509,14 +437,14 @@ private boolean checkIfMetricExists(InMemoryMetricReader reader, String metricNa
return false;
}
- private long getAggregatedValue(MetricData metricData, Attributes attributes) {
+ private float getAggregatedValue(MetricData metricData, Attributes attributes) {
switch (metricData.getType()) {
case HISTOGRAM:
return metricData.getHistogramData().getPoints().stream()
.filter(pd -> pd.getAttributes().equals(attributes))
- .map(data -> (long) data.getSum() / data.getCount())
+ .map(data -> (float) data.getSum() / data.getCount())
.findFirst()
- .orElse(0L);
+ .orElse(0F);
case LONG_SUM:
return metricData.getLongSumData().getPoints().stream()
.filter(pd -> pd.getAttributes().equals(attributes))
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/OptionsTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/OptionsTest.java
index e2bcc92fedc..67a2adf1231 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/OptionsTest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/OptionsTest.java
@@ -83,6 +83,7 @@ public void zeroPrefetchChunksNotAllowed() {
@Test
public void allOptionsPresent() {
+ XGoogSpannerRequestId reqId1 = XGoogSpannerRequestId.of(2, 3, 4, 5);
Options options =
Options.fromReadOptions(
Options.limit(10),
@@ -90,6 +91,7 @@ public void allOptionsPresent() {
Options.dataBoostEnabled(true),
Options.directedRead(DIRECTED_READ_OPTIONS),
Options.orderBy(RpcOrderBy.NO_ORDER),
+ Options.requestId(reqId1),
Options.lockHint(Options.RpcLockHint.SHARED));
assertThat(options.hasLimit()).isTrue();
assertThat(options.limit()).isEqualTo(10);
@@ -101,6 +103,7 @@ public void allOptionsPresent() {
assertTrue(options.hasOrderBy());
assertTrue(options.hasLockHint());
assertEquals(DIRECTED_READ_OPTIONS, options.directedReadOptions());
+ assertEquals(options.reqId(), reqId1);
}
@Test
@@ -873,4 +876,55 @@ public void testOptions_WithMultipleDifferentIsolationLevels() {
Options options = Options.fromTransactionOptions(transactionOptions);
assertEquals(options.isolationLevel(), IsolationLevel.SERIALIZABLE);
}
+
+ @Test
+ public void testRequestId() {
+ XGoogSpannerRequestId reqId1 = XGoogSpannerRequestId.of(1, 2, 3, 4);
+ XGoogSpannerRequestId reqId2 = XGoogSpannerRequestId.of(2, 3, 4, 5);
+ Options option1 = Options.fromUpdateOptions(Options.requestId(reqId1));
+ Options option1Prime = Options.fromUpdateOptions(Options.requestId(reqId1));
+ Options option2 = Options.fromUpdateOptions(Options.requestId(reqId2));
+ Options option3 = Options.fromUpdateOptions();
+
+ assertEquals(option1, option1Prime);
+ assertNotEquals(option1, option2);
+ assertEquals(option1.hashCode(), option1Prime.hashCode());
+ assertNotEquals(option1, option2);
+ assertNotEquals(option1, option3);
+ assertNotEquals(option1.hashCode(), option3.hashCode());
+
+ assertTrue(option1.hasReqId());
+ assertThat(option1.toString()).contains("requestId: " + reqId1.toString());
+
+ assertFalse(option3.hasReqId());
+ assertThat(option3.toString()).doesNotContain("requestId");
+ }
+
+ @Test
+ public void testRequestIdOptionEqualsAndHashCode() {
+ XGoogSpannerRequestId reqId1 = XGoogSpannerRequestId.of(1, 2, 3, 4);
+ XGoogSpannerRequestId reqId2 = XGoogSpannerRequestId.of(2, 3, 4, 5);
+ Options.RequestIdOption opt1 = Options.requestId(reqId1);
+ Options.RequestIdOption opt1Prime = Options.requestId(reqId1);
+ Options.RequestIdOption opt2 = Options.requestId(reqId2);
+
+ assertTrue(opt1.equals(opt1));
+ assertTrue(opt1.equals(opt1Prime));
+ assertEquals(opt1.hashCode(), opt1Prime.hashCode());
+ assertFalse(opt1.equals(opt2));
+ assertNotEquals(opt1, opt2);
+ assertNotEquals(opt1.hashCode(), opt2.hashCode());
+ }
+
+ @Test
+ public void testOptions_WithMultipleDifferentRequestIds() {
+ XGoogSpannerRequestId reqId1 = XGoogSpannerRequestId.of(1, 1, 1, 1);
+ XGoogSpannerRequestId reqId2 = XGoogSpannerRequestId.of(1, 1, 1, 2);
+ TransactionOption[] transactionOptions = {
+ Options.requestId(reqId1), Options.requestId(reqId2),
+ };
+ Options options = Options.fromTransactionOptions(transactionOptions);
+ assertNotEquals(options.reqId(), reqId1);
+ assertEquals(options.reqId(), reqId2);
+ }
}
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/PartitionedDmlTransactionTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/PartitionedDmlTransactionTest.java
index 0a2beea7734..8f71b1278f3 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/PartitionedDmlTransactionTest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/PartitionedDmlTransactionTest.java
@@ -96,7 +96,11 @@ public class PartitionedDmlTransactionTest {
public void setup() {
MockitoAnnotations.initMocks(this);
when(session.getName()).thenReturn(sessionId);
+ when(session.getRequestIdCreator())
+ .thenReturn(new XGoogSpannerRequestId.NoopRequestIdCreator());
when(session.getOptions()).thenReturn(Collections.EMPTY_MAP);
+ when(session.getRequestIdCreator())
+ .thenReturn(new XGoogSpannerRequestId.NoopRequestIdCreator());
when(rpc.beginTransaction(any(BeginTransactionRequest.class), anyMap(), eq(true)))
.thenReturn(Transaction.newBuilder().setId(txId).build());
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/ResumableStreamIteratorTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/ResumableStreamIteratorTest.java
index ebe86724678..5588b47866f 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/ResumableStreamIteratorTest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/ResumableStreamIteratorTest.java
@@ -162,7 +162,8 @@ private void initWithLimit(int maxBufferSize) {
new TraceWrapper(Tracing.getTracer(), OpenTelemetry.noop().getTracer(""), false),
DefaultErrorHandler.INSTANCE,
SpannerStubSettings.newBuilder().executeStreamingSqlSettings().getRetrySettings(),
- SpannerStubSettings.newBuilder().executeStreamingSqlSettings().getRetryableCodes()) {
+ SpannerStubSettings.newBuilder().executeStreamingSqlSettings().getRetryableCodes(),
+ new XGoogSpannerRequestId.NoopRequestIdCreator()) {
@Override
AbstractResultSet.CloseableIterator startStream(
@Nullable ByteString resumeToken,
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/RetryOnDifferentGrpcChannelMockServerTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/RetryOnDifferentGrpcChannelMockServerTest.java
index f3e15df8189..e7ef9955d4f 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/RetryOnDifferentGrpcChannelMockServerTest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/RetryOnDifferentGrpcChannelMockServerTest.java
@@ -284,6 +284,7 @@ public void testDenyListedChannelIsCleared() {
@Test
public void testSingleUseQuery_retriesOnNewChannel() {
+ assumeFalse(TestHelper.isMultiplexSessionDisabled());
SpannerOptions.Builder builder = createSpannerOptionsBuilder();
builder.setSessionPoolOption(
SessionPoolOptions.newBuilder().setUseMultiplexedSession(true).build());
@@ -312,6 +313,7 @@ public void testSingleUseQuery_retriesOnNewChannel() {
@Test
public void testSingleUseQuery_stopsRetrying() {
+ assumeFalse(TestHelper.isMultiplexSessionDisabled());
SpannerOptions.Builder builder = createSpannerOptionsBuilder();
builder.setSessionPoolOption(
SessionPoolOptions.newBuilder().setUseMultiplexedSession(true).build());
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SessionClientTests.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SessionClientTests.java
index bcba430c521..5d3ed2bca53 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SessionClientTests.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SessionClientTests.java
@@ -18,7 +18,7 @@
import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doNothing;
@@ -153,8 +153,17 @@ public void createAndCloseSession() {
assertThat(session.getName()).isEqualTo(sessionName);
session.close();
+
+ final ArgumentCaptor> deleteOptionsCaptor =
+ ArgumentCaptor.forClass(Map.class);
+ final ArgumentCaptor sessionNameCaptor = ArgumentCaptor.forClass(String.class);
+ Mockito.verify(rpc).deleteSession(sessionNameCaptor.capture(), deleteOptionsCaptor.capture());
+ assertEquals(sessionName, sessionNameCaptor.getValue());
// The same channelHint is passed for deleteSession (contained in "options").
- Mockito.verify(rpc).deleteSession(sessionName, options.getValue());
+ assertEquals(
+ deleteOptionsCaptor.getValue().get(SpannerRpc.Option.CHANNEL_HINT),
+ options.getValue().get(SpannerRpc.Option.CHANNEL_HINT));
+ assertTrue(deleteOptionsCaptor.getValue().containsKey(SpannerRpc.Option.REQUEST_ID));
}
}
@@ -198,7 +207,9 @@ public void onSessionCreateFailure(Throwable t, int createFailureForSessionCount
client.createMultiplexedSession(consumer);
}
// for multiplexed session there is no channel hint pass in the RPC options
- assertNull(options.getValue());
+ assertNotNull(options.getValue());
+ assertEquals(options.getValue().get(Option.CHANNEL_HINT), null);
+ assertNotNull(options.getValue().get(Option.REQUEST_ID));
assertEquals(1, returnedSessionCount.get());
}
@@ -230,7 +241,9 @@ public void onSessionCreateFailure(Throwable t, int createFailureForSessionCount
client.createMultiplexedSession(consumer);
}
// for multiplexed session there is no channel hint pass in the RPC options
- assertNull(options.getValue());
+ assertNotNull(options.getValue());
+ assertEquals(options.getValue().get(Option.CHANNEL_HINT), null);
+ assertNotNull(options.getValue().get(Option.REQUEST_ID));
}
@SuppressWarnings("unchecked")
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SessionImplTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SessionImplTest.java
index eed75bb67e1..df957f75ebf 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SessionImplTest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SessionImplTest.java
@@ -21,6 +21,7 @@
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertThrows;
import static org.junit.Assert.fail;
+import static org.mockito.ArgumentMatchers.anyMap;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -144,6 +145,7 @@ public void setUp() {
when(rpc.getCommitRetrySettings())
.thenReturn(SpannerStubSettings.newBuilder().commitSettings().getRetrySettings());
session = spanner.getSessionClient(db).createSession();
+ ((SessionImpl) session).setRequestIdCreator(new XGoogSpannerRequestId.NoopRequestIdCreator());
Span oTspan = mock(Span.class);
ISpan span = new OpenTelemetrySpan(oTspan);
when(oTspan.makeCurrent()).thenReturn(mock(Scope.class));
@@ -219,10 +221,14 @@ public void nestedTxnSucceedsWhenAllowed() {
@Test
public void writeAtLeastOnce() throws ParseException {
String timestampString = "2015-10-01T10:54:20.021Z";
+ com.google.protobuf.Timestamp t = Timestamps.parse(timestampString);
+ Transaction txnMetadata = Transaction.newBuilder().setReadTimestamp(t).build();
+ Mockito.when(rpc.beginTransaction(Mockito.any(), Mockito.eq(options), eq(false)))
+ .thenReturn(txnMetadata);
ArgumentCaptor commit = ArgumentCaptor.forClass(CommitRequest.class);
CommitResponse response =
CommitResponse.newBuilder().setCommitTimestamp(Timestamps.parse(timestampString)).build();
- Mockito.when(rpc.commit(commit.capture(), Mockito.eq(options))).thenReturn(response);
+ Mockito.when(rpc.commit(commit.capture(), anyMap())).thenReturn(response);
Timestamp timestamp =
session.writeAtLeastOnce(
@@ -254,7 +260,7 @@ public void writeAtLeastOnceWithOptions() throws ParseException {
ArgumentCaptor commit = ArgumentCaptor.forClass(CommitRequest.class);
CommitResponse response =
CommitResponse.newBuilder().setCommitTimestamp(Timestamps.parse(timestampString)).build();
- Mockito.when(rpc.commit(commit.capture(), Mockito.eq(options))).thenReturn(response);
+ Mockito.when(rpc.commit(commit.capture(), anyMap())).thenReturn(response);
session.writeAtLeastOnceWithOptions(
Collections.singletonList(Mutation.newInsertBuilder("T").set("C").to("x").build()),
Options.tag(tag));
@@ -339,7 +345,7 @@ public void newMultiUseReadOnlyTransactionContextClosesOldSingleUseContext() {
public void writeClosesOldSingleUseContext() throws ParseException {
ReadContext ctx = session.singleUse(TimestampBound.strong());
- Mockito.when(rpc.commit(Mockito.any(), Mockito.eq(options)))
+ Mockito.when(rpc.commit(Mockito.any(), anyMap()))
.thenReturn(
CommitResponse.newBuilder()
.setCommitTimestamp(Timestamps.parse("2015-10-01T10:54:20.021Z"))
@@ -440,7 +446,7 @@ public void request(int numMessages) {}
private void mockRead(final PartialResultSet myResultSet) {
final ArgumentCaptor consumer =
ArgumentCaptor.forClass(SpannerRpc.ResultStreamConsumer.class);
- Mockito.when(rpc.read(Mockito.any(), consumer.capture(), Mockito.eq(options), eq(false)))
+ Mockito.when(rpc.read(Mockito.any(), consumer.capture(), anyMap(), eq(false)))
.then(
invocation -> {
consumer.getValue().onPartialResultSet(myResultSet);
@@ -456,8 +462,7 @@ public void multiUseReadOnlyTransactionReturnsEmptyTransactionMetadata() {
PartialResultSet.newBuilder()
.setMetadata(newMetadata(Type.struct(Type.StructField.of("C", Type.string()))))
.build();
- Mockito.when(rpc.beginTransaction(Mockito.any(), Mockito.eq(options), eq(false)))
- .thenReturn(txnMetadata);
+ Mockito.when(rpc.beginTransaction(Mockito.any(), anyMap(), eq(false))).thenReturn(txnMetadata);
mockRead(resultSet);
ReadOnlyTransaction txn = session.readOnlyTransaction(TimestampBound.strong());
@@ -475,8 +480,7 @@ public void multiUseReadOnlyTransactionReturnsMissingTimestamp() {
PartialResultSet.newBuilder()
.setMetadata(newMetadata(Type.struct(Type.StructField.of("C", Type.string()))))
.build();
- Mockito.when(rpc.beginTransaction(Mockito.any(), Mockito.eq(options), eq(false)))
- .thenReturn(txnMetadata);
+ Mockito.when(rpc.beginTransaction(Mockito.any(), anyMap(), eq(false))).thenReturn(txnMetadata);
mockRead(resultSet);
ReadOnlyTransaction txn = session.readOnlyTransaction(TimestampBound.strong());
@@ -495,8 +499,7 @@ public void multiUseReadOnlyTransactionReturnsMissingTransactionId() throws Pars
PartialResultSet.newBuilder()
.setMetadata(newMetadata(Type.struct(Type.StructField.of("C", Type.string()))))
.build();
- Mockito.when(rpc.beginTransaction(Mockito.any(), Mockito.eq(options), eq(false)))
- .thenReturn(txnMetadata);
+ Mockito.when(rpc.beginTransaction(Mockito.any(), anyMap(), eq(false))).thenReturn(txnMetadata);
mockRead(resultSet);
ReadOnlyTransaction txn = session.readOnlyTransaction(TimestampBound.strong());
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SessionPoolOptionsTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SessionPoolOptionsTest.java
index d4b36e97488..705783d78c0 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SessionPoolOptionsTest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SessionPoolOptionsTest.java
@@ -283,6 +283,7 @@ public void testRandomizePositionQPSThreshold() {
@Test
public void testUseMultiplexedSession() {
+ assumeFalse(TestHelper.isMultiplexSessionDisabled());
// skip these tests since this configuration can have dual behaviour in different test-runners
assumeFalse(SessionPoolOptions.newBuilder().build().getUseMultiplexedSession());
assertEquals(false, SessionPoolOptions.newBuilder().build().getUseMultiplexedSession());
@@ -304,6 +305,7 @@ public void testUseMultiplexedSession() {
@Test
public void testUseMultiplexedSessionForRW() {
// skip these tests since this configuration can have dual behaviour in different test-runners
+ assumeFalse(TestHelper.isMultiplexSessionDisabled());
assumeFalse(
Boolean.parseBoolean(System.getenv("GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS_FOR_RW")));
assumeFalse(SessionPoolOptions.newBuilder().build().getUseMultiplexedSession());
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SessionPoolTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SessionPoolTest.java
index b027ebbc07f..8d00f0889b8 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SessionPoolTest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SessionPoolTest.java
@@ -1481,6 +1481,8 @@ public void testSessionNotFoundReadWriteTransaction() {
when(closedSession.getName())
.thenReturn("projects/dummy/instances/dummy/database/dummy/sessions/session-closed");
when(closedSession.getErrorHandler()).thenReturn(DefaultErrorHandler.INSTANCE);
+ when(closedSession.getRequestIdCreator())
+ .thenReturn(new XGoogSpannerRequestId.NoopRequestIdCreator());
Span oTspan = mock(Span.class);
ISpan span = new OpenTelemetrySpan(oTspan);
@@ -1521,6 +1523,8 @@ public void testSessionNotFoundReadWriteTransaction() {
TransactionRunnerImpl openTransactionRunner = new TransactionRunnerImpl(openSession);
openTransactionRunner.setSpan(span);
when(openSession.readWriteTransaction()).thenReturn(openTransactionRunner);
+ when(openSession.getRequestIdCreator())
+ .thenReturn(new XGoogSpannerRequestId.NoopRequestIdCreator());
ResultSet openResultSet = mock(ResultSet.class);
when(openResultSet.next()).thenReturn(true, false);
@@ -1644,13 +1648,15 @@ public void testSessionNotFoundWrite() {
SpannerExceptionFactoryTest.newSessionNotFoundException(sessionName);
List mutations = Collections.singletonList(Mutation.newInsertBuilder("FOO").build());
final SessionImpl closedSession = mockSession();
- when(closedSession.writeWithOptions(mutations)).thenThrow(sessionNotFound);
+ closedSession.setRequestIdCreator(new XGoogSpannerRequestId.NoopRequestIdCreator());
+ when(closedSession.writeWithOptions(eq(mutations), any())).thenThrow(sessionNotFound);
final SessionImpl openSession = mockSession();
com.google.cloud.spanner.CommitResponse response =
mock(com.google.cloud.spanner.CommitResponse.class);
when(response.getCommitTimestamp()).thenReturn(Timestamp.now());
- when(openSession.writeWithOptions(mutations)).thenReturn(response);
+ openSession.setRequestIdCreator(new XGoogSpannerRequestId.NoopRequestIdCreator());
+ when(openSession.writeWithOptions(eq(mutations), any())).thenReturn(response);
doAnswer(
invocation -> {
executor.submit(
@@ -1687,13 +1693,16 @@ public void testSessionNotFoundWriteAtLeastOnce() {
SpannerExceptionFactoryTest.newSessionNotFoundException(sessionName);
List mutations = Collections.singletonList(Mutation.newInsertBuilder("FOO").build());
final SessionImpl closedSession = mockSession();
- when(closedSession.writeAtLeastOnceWithOptions(mutations)).thenThrow(sessionNotFound);
+ closedSession.setRequestIdCreator(new XGoogSpannerRequestId.NoopRequestIdCreator());
+ when(closedSession.writeAtLeastOnceWithOptions(eq(mutations), any()))
+ .thenThrow(sessionNotFound);
final SessionImpl openSession = mockSession();
com.google.cloud.spanner.CommitResponse response =
mock(com.google.cloud.spanner.CommitResponse.class);
when(response.getCommitTimestamp()).thenReturn(Timestamp.now());
- when(openSession.writeAtLeastOnceWithOptions(mutations)).thenReturn(response);
+ openSession.setRequestIdCreator(new XGoogSpannerRequestId.NoopRequestIdCreator());
+ when(openSession.writeAtLeastOnceWithOptions(eq(mutations), any())).thenReturn(response);
doAnswer(
invocation -> {
executor.submit(
@@ -1729,10 +1738,10 @@ public void testSessionNotFoundPartitionedUpdate() {
SpannerExceptionFactoryTest.newSessionNotFoundException(sessionName);
Statement statement = Statement.of("UPDATE FOO SET BAR=1 WHERE 1=1");
final SessionImpl closedSession = mockSession();
- when(closedSession.executePartitionedUpdate(statement)).thenThrow(sessionNotFound);
+ when(closedSession.executePartitionedUpdate(eq(statement), any())).thenThrow(sessionNotFound);
final SessionImpl openSession = mockSession();
- when(openSession.executePartitionedUpdate(statement)).thenReturn(1L);
+ when(openSession.executePartitionedUpdate(eq(statement), any())).thenReturn(1L);
doAnswer(
invocation -> {
executor.submit(
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/StructTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/StructTest.java
index d357a14f9d0..55d066e165e 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/StructTest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/StructTest.java
@@ -57,6 +57,48 @@ public void builder() {
assertThat(struct.getLong(1)).isEqualTo(2);
}
+ @Test
+ public void getOrNullTests() {
+ Struct struct =
+ Struct.newBuilder()
+ .set("f1")
+ .to("x")
+ .set("f2")
+ .to(2)
+ .set("f3")
+ .to(Value.bool(null))
+ .build();
+ String column1 = struct.getOrNull(0, StructReader::getString);
+ assertThat(column1).isEqualTo("x");
+
+ Long column2 = struct.getOrNull(1, StructReader::getLong);
+ assertThat(column2).isEqualTo(2);
+
+ String column3 = struct.getOrNull("f3", StructReader::getString);
+ assertThat(column3).isNull();
+ }
+
+ @Test
+ public void getOrDefaultTests() {
+ Struct struct =
+ Struct.newBuilder()
+ .set("f1")
+ .to("x")
+ .set("f2")
+ .to(2)
+ .set("f3")
+ .to(Value.bool(null))
+ .build();
+ String column1 = struct.getOrDefault(0, StructReader::getString, "");
+ assertThat(column1).isEqualTo("x");
+
+ Long column2 = struct.getOrDefault("f2", StructReader::getLong, -1L);
+ assertThat(column2).isEqualTo(2);
+
+ String column3 = struct.getOrDefault(2, StructReader::getString, "");
+ assertThat(column3).isEqualTo("");
+ }
+
@Test
public void duplicateFields() {
// Duplicate fields are allowed - some SQL queries produce this type of value.
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TestHelper.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TestHelper.java
new file mode 100644
index 00000000000..eb72238e8a5
--- /dev/null
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TestHelper.java
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.google.cloud.spanner;
+
+class TestHelper {
+
+ static boolean isMultiplexSessionDisabled() {
+ return System.getenv()
+ .getOrDefault("GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS", "")
+ .equalsIgnoreCase("false");
+ }
+}
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TransactionContextImplTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TransactionContextImplTest.java
index 561bfb89008..4c507b7beae 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TransactionContextImplTest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TransactionContextImplTest.java
@@ -67,6 +67,8 @@ public void setup() {
.setCommitTimestamp(Timestamp.newBuilder().setSeconds(99L).setNanos(10).build())
.build()));
when(session.getName()).thenReturn("test");
+ when(session.getRequestIdCreator())
+ .thenReturn(new XGoogSpannerRequestId.NoopRequestIdCreator());
doNothing().when(span).setStatus(any(Throwable.class));
doNothing().when(span).end();
doNothing().when(span).addAnnotation("Starting Commit");
@@ -210,6 +212,8 @@ public void testReturnCommitStats() {
private void batchDml(int status) {
SessionImpl session = mock(SessionImpl.class);
when(session.getName()).thenReturn("test");
+ when(session.getRequestIdCreator())
+ .thenReturn(new XGoogSpannerRequestId.NoopRequestIdCreator());
SpannerRpc rpc = mock(SpannerRpc.class);
ExecuteBatchDmlResponse response =
ExecuteBatchDmlResponse.newBuilder()
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TransactionManagerImplTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TransactionManagerImplTest.java
index 547f6b70a22..19c03859e66 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TransactionManagerImplTest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TransactionManagerImplTest.java
@@ -241,7 +241,7 @@ public void usesPreparedTransaction() {
Mockito.anyString(),
Mockito.anyString(),
Mockito.anyMap(),
- Mockito.eq(null),
+ Mockito.anyMap(),
Mockito.eq(true)))
.thenAnswer(
invocation ->
@@ -324,7 +324,7 @@ public void inlineBegin() {
Mockito.anyString(),
Mockito.anyString(),
Mockito.anyMap(),
- Mockito.eq(null),
+ Mockito.anyMap(),
Mockito.eq(true)))
.thenAnswer(
invocation ->
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TransactionRunnerImplTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TransactionRunnerImplTest.java
index 3068b38f3ef..2325f2ac40f 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TransactionRunnerImplTest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TransactionRunnerImplTest.java
@@ -121,6 +121,8 @@ public void setUp() {
when(session.getErrorHandler()).thenReturn(DefaultErrorHandler.INSTANCE);
when(session.newTransaction(eq(Options.fromTransactionOptions()), any())).thenReturn(txn);
when(session.getTracer()).thenReturn(tracer);
+ when(session.getRequestIdCreator())
+ .thenReturn(new XGoogSpannerRequestId.NoopRequestIdCreator());
when(rpc.executeQuery(Mockito.any(ExecuteSqlRequest.class), Mockito.anyMap(), eq(true)))
.thenAnswer(
invocation -> {
@@ -193,7 +195,7 @@ public void usesPreparedTransaction() {
Mockito.anyString(),
Mockito.anyString(),
Mockito.anyMap(),
- Mockito.eq(null),
+ Mockito.anyMap(),
Mockito.eq(true)))
.thenAnswer(
invocation ->
@@ -334,6 +336,7 @@ public void inlineBegin() {
spanner,
new SessionReference(
"projects/p/instances/i/databases/d/sessions/s", Collections.EMPTY_MAP)) {};
+ session.setRequestIdCreator(new XGoogSpannerRequestId.NoopRequestIdCreator());
session.setCurrentSpan(new OpenTelemetrySpan(mock(io.opentelemetry.api.trace.Span.class)));
TransactionRunnerImpl runner = new TransactionRunnerImpl(session);
runner.setSpan(span);
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/XGoogSpannerRequestIdTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/XGoogSpannerRequestIdTest.java
index 12c9213c7dc..fd1ddbbf249 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/XGoogSpannerRequestIdTest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/XGoogSpannerRequestIdTest.java
@@ -18,18 +18,29 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
+import io.grpc.Metadata;
+import io.grpc.MethodDescriptor.MethodType;
+import io.grpc.ServerCall;
+import io.grpc.ServerCallHandler;
+import io.grpc.ServerInterceptor;
+import io.grpc.Status;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.CopyOnWriteArrayList;
import java.util.regex.Matcher;
-import java.util.regex.Pattern;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
@RunWith(JUnit4.class)
public class XGoogSpannerRequestIdTest {
- private static final Pattern REGEX_RAND_PROCESS_ID =
- Pattern.compile("1.([0-9a-z]{16})(\\.\\d+){3}\\.(\\d+)$");
@Test
public void testEquals() {
@@ -48,7 +59,144 @@ public void testEquals() {
@Test
public void testEnsureHexadecimalFormatForRandProcessID() {
String str = XGoogSpannerRequestId.of(1, 2, 3, 4).toString();
- Matcher m = XGoogSpannerRequestIdTest.REGEX_RAND_PROCESS_ID.matcher(str);
+ Matcher m = XGoogSpannerRequestId.REGEX.matcher(str);
assertTrue(m.matches());
}
+
+ public static class ServerHeaderEnforcer implements ServerInterceptor {
+ private Map> unaryResults;
+ private Map> streamingResults;
+ private List gotValues;
+ private Set checkMethods;
+
+ ServerHeaderEnforcer(Set checkMethods) {
+ this.gotValues = new CopyOnWriteArrayList();
+ this.unaryResults =
+ new ConcurrentHashMap>();
+ this.streamingResults =
+ new ConcurrentHashMap>();
+ this.checkMethods = checkMethods;
+ }
+
+ @Override
+ public ServerCall.Listener interceptCall(
+ ServerCall call,
+ final Metadata requestHeaders,
+ ServerCallHandler next) {
+ boolean isUnary = call.getMethodDescriptor().getType() == MethodType.UNARY;
+ String methodName = call.getMethodDescriptor().getFullMethodName();
+ String gotReqIdStr = requestHeaders.get(XGoogSpannerRequestId.REQUEST_HEADER_KEY);
+ if (!this.checkMethods.contains(methodName)) {
+ return next.startCall(call, requestHeaders);
+ }
+
+ Map> saver = this.streamingResults;
+ if (isUnary) {
+ saver = this.unaryResults;
+ }
+
+ if (Objects.equals(gotReqIdStr, null) || Objects.equals(gotReqIdStr, "")) {
+ Status status =
+ Status.fromCode(Status.Code.INVALID_ARGUMENT)
+ .augmentDescription(
+ methodName + " lacks " + XGoogSpannerRequestId.REQUEST_HEADER_KEY);
+ call.close(status, requestHeaders);
+ return next.startCall(call, requestHeaders);
+ }
+
+ assertNotNull(gotReqIdStr);
+ // Firstly assert and validate that at least we've got a requestId.
+ Matcher m = XGoogSpannerRequestId.REGEX.matcher(gotReqIdStr);
+ assertTrue(m.matches());
+
+ XGoogSpannerRequestId reqId = XGoogSpannerRequestId.of(gotReqIdStr);
+ if (!saver.containsKey(methodName)) {
+ saver.put(methodName, new CopyOnWriteArrayList());
+ }
+
+ saver.get(methodName).add(reqId);
+
+ // Finally proceed with the call.
+ return next.startCall(call, requestHeaders);
+ }
+
+ public String[] accumulatedValues() {
+ return this.gotValues.toArray(new String[0]);
+ }
+
+ public void assertIntegrity() {
+ this.unaryResults.forEach(
+ (String method, CopyOnWriteArrayList values) -> {
+ assertMonotonicityOfIds(method, values);
+ });
+ this.streamingResults.forEach(
+ (String method, CopyOnWriteArrayList values) -> {
+ assertMonotonicityOfIds(method, values);
+ });
+ }
+
+ private void assertMonotonicityOfIds(String prefix, List reqIds) {
+ int size = reqIds.size();
+
+ List violations = new ArrayList<>();
+ for (int i = 1; i < size; i++) {
+ XGoogSpannerRequestId prev = reqIds.get(i - 1);
+ XGoogSpannerRequestId curr = reqIds.get(i);
+ if (prev.isGreaterThan(curr)) {
+ violations.add(String.format("#%d(%s) > #%d(%s)", i - 1, prev, i, curr));
+ }
+ }
+
+ if (violations.isEmpty()) {
+ return;
+ }
+
+ throw new IllegalStateException(
+ prefix
+ + " monotonicity violation:"
+ + String.join("\n\t", violations.toArray(new String[0])));
+ }
+
+ public static class methodAndRequestId {
+ String method;
+ String requestId;
+
+ public methodAndRequestId(String method, String requestId) {
+ this.method = method;
+ this.requestId = requestId;
+ }
+
+ public String toString() {
+ return "{" + this.method + ":" + this.requestId + "}";
+ }
+ }
+
+ public methodAndRequestId[] accumulatedUnaryValues() {
+ List accumulated = new ArrayList();
+ this.unaryResults.forEach(
+ (String method, CopyOnWriteArrayList values) -> {
+ for (int i = 0; i < values.size(); i++) {
+ accumulated.add(new methodAndRequestId(method, values.get(i).toString()));
+ }
+ });
+ return accumulated.toArray(new methodAndRequestId[0]);
+ }
+
+ public methodAndRequestId[] accumulatedStreamingValues() {
+ List accumulated = new ArrayList();
+ this.streamingResults.forEach(
+ (String method, CopyOnWriteArrayList values) -> {
+ for (int i = 0; i < values.size(); i++) {
+ accumulated.add(new methodAndRequestId(method, values.get(i).toString()));
+ }
+ });
+ return accumulated.toArray(new methodAndRequestId[0]);
+ }
+
+ public void reset() {
+ this.gotValues.clear();
+ this.unaryResults.clear();
+ this.streamingResults.clear();
+ }
+ }
}
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/AbstractConnectionImplTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/AbstractConnectionImplTest.java
index cb959200425..0ad0588b68b 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/AbstractConnectionImplTest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/AbstractConnectionImplTest.java
@@ -276,13 +276,14 @@ public void testSetStatementTimeout() {
assertThat(connection.hasStatementTimeout(), is(false));
boolean gotException = false;
try {
- log("@EXPECT EXCEPTION INVALID_ARGUMENT");
+ // log("@EXPECT EXCEPTION INVALID_ARGUMENT");
log(String.format("SET STATEMENT_TIMEOUT='0%s';", getTimeUnitAbbreviation(unit)));
- connection.setStatementTimeout(0L, unit);
+ connection.clearStatementTimeout();
+ // connection.setStatementTimeout(0L, unit);
} catch (IllegalArgumentException e) {
gotException = true;
}
- assertThat(gotException, is(true));
+ assertThat(gotException, is(false));
log(
String.format(
"@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',%s",
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionOptionsTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionOptionsTest.java
index af391a745f4..e274c0e6c04 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionOptionsTest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionOptionsTest.java
@@ -1311,4 +1311,22 @@ public void testExperimentalHost() {
.getSessionPoolOptions()
.getUseMultiplexedSessionPartitionedOps());
}
+
+ @Test
+ public void testEnableDirectAccess() {
+ ConnectionOptions.Builder builderWithoutDirectPathParam = ConnectionOptions.newBuilder();
+ builderWithoutDirectPathParam.setUri(
+ "spanner://localhost:15000/instances/default/databases/singers-db;usePlainText=true");
+ assertNull(builderWithoutDirectPathParam.build().isEnableDirectAccess());
+
+ ConnectionOptions.Builder builderWithDirectPathParamFalse = ConnectionOptions.newBuilder();
+ builderWithDirectPathParamFalse.setUri(
+ "spanner://localhost:15000/instances/default/databases/singers-db;usePlainText=true;enableDirectAccess=false");
+ assertFalse(builderWithDirectPathParamFalse.build().isEnableDirectAccess());
+
+ ConnectionOptions.Builder builderWithDirectPathParam = ConnectionOptions.newBuilder();
+ builderWithDirectPathParam.setUri(
+ "spanner://localhost:15000/projects/default/instances/default/databases/singers-db;usePlainText=true;enableDirectAccess=true");
+ assertTrue(builderWithDirectPathParam.build().isEnableDirectAccess());
+ }
}
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/CredentialsProviderTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/CredentialsProviderTest.java
index 9e2979e1aaf..f082fa7042a 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/CredentialsProviderTest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/CredentialsProviderTest.java
@@ -93,7 +93,7 @@ public void testCredentialsProvider() throws Throwable {
.setConfigurator(
spannerOptions -> {
spannerOptions.setChannelConfigurator(ManagedChannelBuilder::usePlaintext);
- spannerOptions.disableDirectPath();
+ spannerOptions.setEnableDirectAccess(false);
})
.build();
@@ -135,7 +135,7 @@ public void testCredentialsProvider() throws Throwable {
.setConfigurator(
spannerOptions -> {
spannerOptions.setChannelConfigurator(ManagedChannelBuilder::usePlaintext);
- spannerOptions.disableDirectPath();
+ spannerOptions.setEnableDirectAccess(false);
})
.build();
try (Connection connection = options.getConnection()) {
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/DdlTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/DdlTest.java
index e71b912233d..3585421e32c 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/DdlTest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/DdlTest.java
@@ -364,4 +364,47 @@ public void testSetsDefaultSequenceKindAndRetriesBatch() {
"create table bar (id2 int64 auto_increment primary key",
((UpdateDatabaseDdlRequest) requests.get(0)).getStatements(1));
}
+
+ @Test
+ public void testStripTrailingSemicolon() {
+ addUpdateDdlResponse();
+ addUpdateDdlResponse();
+ addUpdateDdlResponse();
+ addUpdateDdlResponse();
+ try (Connection connection = createConnection()) {
+ connection.execute(Statement.of("drop table foo;"));
+ connection.execute(Statement.of("drop table foo \n\t;\n\t "));
+ connection.execute(Statement.of("drop table foo"));
+
+ connection.startBatchDdl();
+ connection.execute(Statement.of("create table foo (id1 int64 auto_increment primary key;"));
+ connection.execute(
+ Statement.of("create table foo (id1 int64 auto_increment primary key \n\t;\n\t "));
+ connection.execute(Statement.of("create table foo (id2 int64 auto_increment primary key"));
+ connection.runBatch();
+ }
+ assertEquals(4, mockDatabaseAdmin.getRequests().size());
+ assertEquals(
+ "drop table foo",
+ ((UpdateDatabaseDdlRequest) mockDatabaseAdmin.getRequests().get(0)).getStatements(0));
+ assertEquals(
+ "drop table foo \n\t",
+ ((UpdateDatabaseDdlRequest) mockDatabaseAdmin.getRequests().get(1)).getStatements(0));
+ assertEquals(
+ "drop table foo",
+ ((UpdateDatabaseDdlRequest) mockDatabaseAdmin.getRequests().get(2)).getStatements(0));
+
+ assertEquals(
+ 3,
+ ((UpdateDatabaseDdlRequest) mockDatabaseAdmin.getRequests().get(3)).getStatementsCount());
+ assertEquals(
+ "create table foo (id1 int64 auto_increment primary key",
+ ((UpdateDatabaseDdlRequest) mockDatabaseAdmin.getRequests().get(3)).getStatements(0));
+ assertEquals(
+ "create table foo (id1 int64 auto_increment primary key \n\t",
+ ((UpdateDatabaseDdlRequest) mockDatabaseAdmin.getRequests().get(3)).getStatements(1));
+ assertEquals(
+ "create table foo (id2 int64 auto_increment primary key",
+ ((UpdateDatabaseDdlRequest) mockDatabaseAdmin.getRequests().get(3)).getStatements(2));
+ }
}
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/DurationConverterTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/DurationConverterTest.java
index 9e3c23cf5ce..e494f9df8b1 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/DurationConverterTest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/DurationConverterTest.java
@@ -42,7 +42,7 @@ public void testConvert() throws CompileException {
DurationConverter converter = new DurationConverter(allowedValues);
assertThat(converter.convert("'100ms'"), is(equalTo(Duration.ofMillis(100L))));
assertThat(converter.convert("100"), is(equalTo(Duration.ofMillis(100))));
- assertThat(converter.convert("'0ms'"), is(nullValue()));
+ assertThat(converter.convert("'0ms'"), is(Duration.ZERO));
assertThat(converter.convert("'-100ms'"), is(nullValue()));
assertThat(
converter.convert("'315576000000000ms'"), is(equalTo(Duration.ofSeconds(315576000000L))));
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/MaxCommitDelayTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/MaxCommitDelayTest.java
index 1e22986cce2..ca7fa18e97a 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/MaxCommitDelayTest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/MaxCommitDelayTest.java
@@ -83,7 +83,20 @@ public void testNoMaxCommitDelayByDefault() {
for (boolean autocommit : new boolean[] {true, false}) {
connection.setAutocommit(autocommit);
executeCommit(connection);
- assertMaxCommitDelay(Duration.getDefaultInstance());
+ assertMaxCommitDelay(Duration.getDefaultInstance(), false);
+ mockSpanner.clearRequests();
+ }
+ }
+ }
+
+ @Test
+ public void testZeroMaxCommitDelay() {
+ try (Connection connection = createConnection()) {
+ for (boolean autocommit : new boolean[] {true, false}) {
+ connection.setAutocommit(autocommit);
+ connection.setMaxCommitDelay(java.time.Duration.ZERO);
+ executeCommit(connection);
+ assertMaxCommitDelay(Duration.getDefaultInstance(), true);
mockSpanner.clearRequests();
}
}
@@ -95,7 +108,19 @@ public void testMaxCommitDelayInConnectionString() {
for (boolean autocommit : new boolean[] {true, false}) {
connection.setAutocommit(autocommit);
executeCommit(connection);
- assertMaxCommitDelay(Duration.newBuilder().setSeconds(1).build());
+ assertMaxCommitDelay(Duration.newBuilder().setSeconds(1).build(), true);
+ mockSpanner.clearRequests();
+ }
+ }
+ }
+
+ @Test
+ public void testZeroMaxCommitDelayInConnectionString() {
+ try (Connection connection = createConnection(";maxCommitDelay=0")) {
+ for (boolean autocommit : new boolean[] {true, false}) {
+ connection.setAutocommit(autocommit);
+ executeCommit(connection);
+ assertMaxCommitDelay(Duration.getDefaultInstance(), true);
mockSpanner.clearRequests();
}
}
@@ -121,20 +146,31 @@ public void testSetMaxCommitDelay() {
() -> {
executeCommit(connection);
assertMaxCommitDelay(
- Duration.newBuilder()
- .setNanos((int) TimeUnit.MILLISECONDS.toNanos(40))
- .build());
+ Duration.newBuilder().setNanos((int) TimeUnit.MILLISECONDS.toNanos(40)).build(),
+ true);
mockSpanner.clearRequests();
});
if (useSql) {
+ // This is translated to Duration.ZERO.
connection.execute(
Statement.of(String.format("set %smax_commit_delay=null", getVariablePrefix())));
} else {
connection.setMaxCommitDelay(null);
}
executeCommit(connection);
- assertMaxCommitDelay(Duration.getDefaultInstance());
+ // The SQL statement set max_commit_delay=null is translated to Duration.ZERO.
+ assertMaxCommitDelay(Duration.getDefaultInstance(), useSql);
+ mockSpanner.clearRequests();
+
+ if (useSql) {
+ connection.execute(
+ Statement.of(String.format("set %smax_commit_delay=0", getVariablePrefix())));
+ } else {
+ connection.setMaxCommitDelay(java.time.Duration.ZERO);
+ }
+ executeCommit(connection);
+ assertMaxCommitDelay(Duration.getDefaultInstance(), true);
mockSpanner.clearRequests();
}
}
@@ -150,10 +186,11 @@ void executeCommit(Connection connection) {
}
}
- private void assertMaxCommitDelay(Duration expected) {
+ private void assertMaxCommitDelay(Duration expected, boolean hasMaxCommitDelay) {
List requests = mockSpanner.getRequestsOfType(CommitRequest.class);
assertEquals(1, requests.size());
CommitRequest request = requests.get(0);
assertEquals(expected, request.getMaxCommitDelay());
+ assertEquals(hasMaxCommitDelay, request.hasMaxCommitDelay());
}
}
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/PgDurationConverterTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/PgDurationConverterTest.java
index 95bd97962a8..ca0ae403e50 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/PgDurationConverterTest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/PgDurationConverterTest.java
@@ -45,7 +45,7 @@ public void testConvert() throws CompileException {
assertEquals(
Duration.ofNanos((int) TimeUnit.MILLISECONDS.toNanos(100L)), converter.convert("'100ms'"));
- assertNull(converter.convert("'0ms'"));
+ assertEquals(Duration.ZERO, converter.convert("'0ms'"));
assertNull(converter.convert("'-100ms'"));
assertEquals(Duration.ofSeconds(315576000000L), converter.convert("'315576000000000ms'"));
assertEquals(Duration.ofSeconds(1L), converter.convert("'1s'"));
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITDirectPathFallback.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITDirectPathFallback.java
index 9cc2ebc450e..bf6c1450973 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITDirectPathFallback.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITDirectPathFallback.java
@@ -100,7 +100,7 @@ public class ITDirectPathFallback {
// TODO(mohanli): Remove this temporary endpoint once DirectPath goes to public beta.
private static final String DIRECT_PATH_ENDPOINT = "aa423245250f2bbf.sandbox.googleapis.com:443";
- private static final String ATTEMPT_DIRECT_PATH = "spanner.attempt_directpath";
+ private static final String ENABLE_DIRECT_ACCESS = "spanner.enable_direct_access";
public ITDirectPathFallback() {
// Create a transport channel provider that can intercept ipv6 packets.
@@ -112,7 +112,7 @@ public ITDirectPathFallback() {
public void setup() {
assume()
.withMessage("DirectPath integration tests can only run against DirectPathEnv")
- .that(Boolean.getBoolean(ATTEMPT_DIRECT_PATH))
+ .that(Boolean.getBoolean(ENABLE_DIRECT_ACCESS))
.isTrue();
// Get default spanner options for Ingetration test
SpannerOptions.Builder builder = env.getTestHelper().getOptions().toBuilder();
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITUuidTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITUuidTest.java
index 17e6369bf02..561602abfe2 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITUuidTest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITUuidTest.java
@@ -399,7 +399,7 @@ public void uuidAsKeyParameter() {
return null;
});
- verifyKeyContents(Arrays.asList(uuid1, uuid2));
+ verifyKeyContents(Arrays.asList(uuid2, uuid1));
}
private void verifyKeyContents(List uuids) {
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpcTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpcTest.java
index 24b09d56f83..e46f61a8ce7 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpcTest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpcTest.java
@@ -879,7 +879,7 @@ private SpannerOptions createSpannerOptions() {
.setProjectId("[PROJECT]")
// Set a custom channel configurator to allow http instead of https.
.setChannelConfigurator(ManagedChannelBuilder::usePlaintext)
- .disableDirectPath()
+ .setEnableDirectAccess(false)
.setHost("http://" + endpoint)
// Set static credentials that will return the static OAuth test token.
.setCredentials(STATIC_CREDENTIALS)
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/spi/v1/GfeLatencyTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/spi/v1/GfeLatencyTest.java
index 908a4ad5573..f2d8a07538c 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/spi/v1/GfeLatencyTest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/spi/v1/GfeLatencyTest.java
@@ -290,7 +290,7 @@ private static SpannerOptions createSpannerOptions(InetSocketAddress address, Se
.setProjectId("[PROJECT]")
// Set a custom channel configurator to allow http instead of https.
.setChannelConfigurator(ManagedChannelBuilder::usePlaintext)
- .disableDirectPath()
+ .setEnableDirectAccess(false)
.setHost("http://" + endpoint)
// Set static credentials that will return the static OAuth test token.
.setCredentials(STATIC_CREDENTIALS)
diff --git a/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/ConnectionImplGeneratedSqlScriptTest.sql b/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/ConnectionImplGeneratedSqlScriptTest.sql
index 0cad83a0f6a..d79dd8bf6f5 100644
--- a/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/ConnectionImplGeneratedSqlScriptTest.sql
+++ b/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/ConnectionImplGeneratedSqlScriptTest.sql
@@ -160,15 +160,15 @@ NEW_CONNECTION;
SET READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
COMMIT;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:31.520000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:31.520000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:38.900000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:38.900000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
COMMIT;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:31.520000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:38.900000000Z';
NEW_CONNECTION;
SET READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
@@ -261,7 +261,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -271,7 +270,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -281,7 +279,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -291,7 +288,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -510,15 +506,15 @@ NEW_CONNECTION;
SET READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:31.643000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:31.643000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:39.005000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:39.005000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:31.643000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:39.005000000Z';
NEW_CONNECTION;
SET READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
@@ -611,7 +607,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -621,7 +616,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -631,7 +625,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -641,7 +634,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -950,8 +942,8 @@ BEGIN TRANSACTION;
@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
ROLLBACK;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:31.735000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:31.735000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:39.100000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:39.100000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
@@ -961,7 +953,7 @@ BEGIN TRANSACTION;
SELECT 1 AS TEST;
ROLLBACK;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:31.735000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:39.100000000Z';
NEW_CONNECTION;
SET READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
@@ -1096,7 +1088,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -1106,7 +1097,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -1116,7 +1106,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -1126,7 +1115,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -1462,8 +1450,8 @@ BEGIN TRANSACTION;
@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
COMMIT;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:31.842000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:31.842000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:39.195000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:39.195000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
@@ -1473,7 +1461,7 @@ BEGIN TRANSACTION;
SELECT 1 AS TEST;
COMMIT;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:31.842000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:39.195000000Z';
NEW_CONNECTION;
SET READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
@@ -1608,7 +1596,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -1618,7 +1605,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -1628,7 +1614,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -1638,7 +1623,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -1876,15 +1860,15 @@ NEW_CONNECTION;
SET READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
BEGIN TRANSACTION;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:31.941000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:31.941000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:39.290000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:39.290000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
BEGIN TRANSACTION;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:31.941000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:39.290000000Z';
NEW_CONNECTION;
SET READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
@@ -1977,7 +1961,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -1987,7 +1970,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -1997,7 +1979,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -2007,7 +1988,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -2243,14 +2223,14 @@ SET AUTOCOMMIT=FALSE;
@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.021000000Z';
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:39.365000000Z';
NEW_CONNECTION;
SET READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.021000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:39.365000000Z';
NEW_CONNECTION;
SET READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
@@ -2355,7 +2335,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -2365,7 +2344,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -2375,7 +2353,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -2385,7 +2362,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -2600,13 +2576,13 @@ SET READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.095000000Z';
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:39.444000000Z';
NEW_CONNECTION;
SET READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.095000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:39.444000000Z';
NEW_CONNECTION;
SET READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
@@ -2697,7 +2673,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -2707,7 +2682,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -2717,7 +2691,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -2727,7 +2700,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -2910,14 +2882,14 @@ SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.166000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:32.166000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:39.539000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:39.539000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.166000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:39.539000000Z';
NEW_CONNECTION;
SET READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
@@ -2996,7 +2968,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -3006,7 +2977,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -3016,7 +2986,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -3026,7 +2995,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -3245,15 +3213,15 @@ NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
COMMIT;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.237000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:32.237000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:39.630000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:39.630000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
COMMIT;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.237000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:39.630000000Z';
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
@@ -3346,7 +3314,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -3356,7 +3323,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -3366,7 +3332,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -3376,7 +3341,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -3662,8 +3626,8 @@ SET AUTOCOMMIT=FALSE;
START BATCH DDL;
CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id);
RUN BATCH;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.293000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:32.293000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:39.702000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:39.702000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=FALSE;
@@ -3672,7 +3636,7 @@ START BATCH DDL;
CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id);
RUN BATCH;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.293000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:39.702000000Z';
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
@@ -3793,7 +3757,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -3803,7 +3766,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -3813,7 +3775,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -3823,7 +3784,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -4081,14 +4041,14 @@ SET AUTOCOMMIT=FALSE;
START BATCH DDL;
CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id);
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.349000000Z';
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:39.767000000Z';
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
START BATCH DDL;
CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id);
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.349000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:39.767000000Z';
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
@@ -4193,7 +4153,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -4203,7 +4162,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -4213,7 +4171,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -4223,7 +4180,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -4438,13 +4394,13 @@ SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
START BATCH DDL;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.399000000Z';
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:39.826000000Z';
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
START BATCH DDL;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.399000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:39.826000000Z';
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
@@ -4535,7 +4491,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -4545,7 +4500,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -4555,7 +4509,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -4565,7 +4518,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -4877,8 +4829,8 @@ SET TRANSACTION READ ONLY;
@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
COMMIT;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.457000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:32.457000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:39.888000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:39.888000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=FALSE;
@@ -4888,7 +4840,7 @@ SET TRANSACTION READ ONLY;
SELECT 1 AS TEST;
COMMIT;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.457000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:39.888000000Z';
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
@@ -5023,7 +4975,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -5033,7 +4984,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -5043,7 +4993,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -5053,7 +5002,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -5288,15 +5236,15 @@ NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
SET TRANSACTION READ ONLY;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.519000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:32.519000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:39.960000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:39.960000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
SET TRANSACTION READ ONLY;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.519000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:39.960000000Z';
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
@@ -5389,7 +5337,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -5399,7 +5346,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -5409,7 +5355,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -5419,7 +5364,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -5641,15 +5585,15 @@ NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.567000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:32.567000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:40.018000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:40.018000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
SET READ_ONLY_STALENESS='EXACT_STALENESS 10s';
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.567000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:40.018000000Z';
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
@@ -5742,7 +5686,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -5752,7 +5695,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -5762,7 +5704,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -5772,7 +5713,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -6088,8 +6028,8 @@ BEGIN TRANSACTION;
@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
ROLLBACK;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.620000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:32.620000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:40.091000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:40.091000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=FALSE;
@@ -6099,7 +6039,7 @@ BEGIN TRANSACTION;
SELECT 1 AS TEST;
ROLLBACK;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.620000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:40.091000000Z';
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
@@ -6234,7 +6174,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -6244,7 +6183,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -6254,7 +6192,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -6264,7 +6201,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -6607,8 +6543,8 @@ BEGIN TRANSACTION;
@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
COMMIT;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.695000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:32.695000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:40.166000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:40.166000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=FALSE;
@@ -6618,7 +6554,7 @@ BEGIN TRANSACTION;
SELECT 1 AS TEST;
COMMIT;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.695000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:40.166000000Z';
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
@@ -6753,7 +6689,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -6763,7 +6698,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -6773,7 +6707,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -6783,7 +6716,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -7023,15 +6955,15 @@ NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
BEGIN TRANSACTION;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.760000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:32.760000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:40.255000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:40.255000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
BEGIN TRANSACTION;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.760000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:40.255000000Z';
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
@@ -7124,7 +7056,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -7134,7 +7065,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -7144,7 +7074,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -7154,7 +7083,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -7394,14 +7322,14 @@ SET AUTOCOMMIT=FALSE;
@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.811000000Z';
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:40.372000000Z';
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.811000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:40.372000000Z';
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
@@ -7506,7 +7434,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -7516,7 +7443,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -7526,7 +7452,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -7536,7 +7461,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -7756,13 +7680,13 @@ SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.869000000Z';
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:40.441000000Z';
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.869000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:40.441000000Z';
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
@@ -7853,7 +7777,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -7863,7 +7786,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -7873,7 +7795,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -7883,7 +7804,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -8075,14 +7995,14 @@ SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.925000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:32.925000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:40.535000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:40.535000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.925000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:40.535000000Z';
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
@@ -8161,7 +8081,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -8171,7 +8090,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -8181,7 +8099,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -8191,7 +8108,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -8392,13 +8308,13 @@ SET READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
START BATCH DDL;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.983000000Z';
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:40.592000000Z';
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
START BATCH DDL;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.983000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:40.592000000Z';
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
@@ -8489,7 +8405,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -8499,7 +8414,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -8509,7 +8423,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -8519,7 +8432,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -8753,8 +8665,8 @@ SET READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
SET TRANSACTION READ ONLY;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:33.034000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:33.034000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:40.651000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:40.651000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=FALSE;
@@ -8762,7 +8674,7 @@ SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
SET TRANSACTION READ ONLY;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:33.034000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:40.651000000Z';
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
@@ -8869,7 +8781,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -8879,7 +8790,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -8889,7 +8799,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -8899,7 +8808,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -9200,8 +9108,8 @@ SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
UPDATE foo SET bar=1;
COMMIT;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:33.086000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:33.086000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:40.713000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:40.713000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=FALSE;
@@ -9209,8 +9117,8 @@ SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
UPDATE foo SET bar=1;
COMMIT;
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:33.086000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-04-08T18:15:33.086000000Z'
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:40.713000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-06-12T08:45:40.713000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=FALSE;
@@ -9333,7 +9241,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -9343,7 +9250,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -9353,7 +9259,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -9363,7 +9268,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -9596,15 +9500,15 @@ NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:33.141000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:33.141000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:40.781000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:40.781000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:33.141000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:40.781000000Z';
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
@@ -9697,7 +9601,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -9707,7 +9610,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -9717,7 +9619,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -9727,7 +9628,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -9958,15 +9858,15 @@ NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id);
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:33.190000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:33.190000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:40.843000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:40.843000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id);
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:33.190000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-04-08T18:15:33.190000000Z'
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:40.843000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-06-12T08:45:40.843000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=FALSE;
@@ -10061,7 +9961,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -10071,7 +9970,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -10081,7 +9979,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -10091,7 +9988,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -10329,15 +10225,15 @@ NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
UPDATE foo SET bar=1;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:33.241000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:33.241000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:40.905000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:40.905000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
UPDATE foo SET bar=1;
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:33.241000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-04-08T18:15:33.241000000Z'
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:40.905000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-06-12T08:45:40.905000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=FALSE;
@@ -10432,7 +10328,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -10442,7 +10337,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -10452,7 +10346,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -10462,7 +10355,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -10730,16 +10622,16 @@ SET READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:33.294000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:33.294000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:40.964000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:40.964000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:33.294000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-04-08T18:15:33.294000000Z'
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:40.964000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-06-12T08:45:40.964000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=FALSE;
@@ -10848,7 +10740,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -10858,7 +10749,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -10868,7 +10758,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -10878,7 +10767,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -11125,15 +11013,15 @@ NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:33.345000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:33.345000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:41.022000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:41.022000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:33.345000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-04-08T18:15:33.345000000Z'
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:41.022000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-06-12T08:45:41.022000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=FALSE;
@@ -11228,7 +11116,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -11238,7 +11125,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -11248,7 +11134,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -11258,7 +11143,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -11466,14 +11350,14 @@ SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:33.396000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:33.396000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:41.080000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:41.080000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:33.396000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-04-08T18:15:33.396000000Z'
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:41.080000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-06-12T08:45:41.080000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=FALSE;
@@ -11554,7 +11438,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -11564,7 +11447,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -11574,7 +11456,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -11584,7 +11465,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -11796,15 +11676,15 @@ NEW_CONNECTION;
SET READONLY=TRUE;
SET AUTOCOMMIT=TRUE;
SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:33.441000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:33.441000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:41.139000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:41.139000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
SET AUTOCOMMIT=TRUE;
SET READ_ONLY_STALENESS='MAX_STALENESS 10s';
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:33.441000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-04-08T18:15:33.441000000Z'
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:41.139000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-06-12T08:45:41.139000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
@@ -11899,7 +11779,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -11909,7 +11788,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -11919,7 +11797,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -11929,7 +11806,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -12211,8 +12087,8 @@ SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
SELECT 1 AS TEST;
COMMIT;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:33.490000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:33.490000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:41.195000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:41.195000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
@@ -12220,8 +12096,8 @@ SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
SELECT 1 AS TEST;
COMMIT;
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:33.490000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-04-08T18:15:33.490000000Z'
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:41.195000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-06-12T08:45:41.195000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
@@ -12344,7 +12220,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -12354,7 +12229,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -12364,7 +12238,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -12374,7 +12247,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -12604,15 +12476,15 @@ NEW_CONNECTION;
SET READONLY=TRUE;
SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:33.541000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:33.541000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:41.253000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:41.253000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:33.541000000Z';
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:41.253000000Z';
NEW_CONNECTION;
SET READONLY=TRUE;
SET AUTOCOMMIT=TRUE;
@@ -12705,7 +12577,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -12715,7 +12586,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -12725,7 +12595,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -12735,7 +12604,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -12950,15 +12818,15 @@ NEW_CONNECTION;
SET READONLY=TRUE;
SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:33.588000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:33.588000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:41.307000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:41.307000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:33.588000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-04-08T18:15:33.588000000Z'
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:41.307000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-06-12T08:45:41.307000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
@@ -13053,7 +12921,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -13063,7 +12930,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -13073,7 +12939,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -13083,7 +12948,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -13305,15 +13169,15 @@ NEW_CONNECTION;
SET READONLY=TRUE;
SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:33.639000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:33.639000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:41.364000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:41.364000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:33.639000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-04-08T18:15:33.639000000Z'
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:41.364000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-06-12T08:45:41.364000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
@@ -13408,7 +13272,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -13418,7 +13281,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -13428,7 +13290,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -13438,7 +13299,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -13630,14 +13490,14 @@ SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:33.688000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:33.688000000Z'
+SET READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:41.418000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:41.418000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
SET AUTOCOMMIT=TRUE;
-SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:33.688000000Z';
-@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-04-08T18:15:33.688000000Z'
+SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:41.418000000Z';
+@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-06-12T08:45:41.418000000Z'
SHOW VARIABLE READ_ONLY_STALENESS;
NEW_CONNECTION;
SET READONLY=TRUE;
@@ -13718,7 +13578,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -13728,7 +13587,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -13738,7 +13596,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -13748,7 +13605,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null
SHOW VARIABLE STATEMENT_TIMEOUT;
diff --git a/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/postgresql/ConnectionImplGeneratedSqlScriptTest.sql b/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/postgresql/ConnectionImplGeneratedSqlScriptTest.sql
index 974533738a0..91c4ac3f394 100644
--- a/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/postgresql/ConnectionImplGeneratedSqlScriptTest.sql
+++ b/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/postgresql/ConnectionImplGeneratedSqlScriptTest.sql
@@ -160,15 +160,15 @@ NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
COMMIT;
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:31.586000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:31.586000000Z'
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:38.957000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:38.957000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
COMMIT;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:31.586000000Z';
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:38.957000000Z';
NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
@@ -261,7 +261,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -271,7 +270,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -281,7 +279,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -291,7 +288,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -510,15 +506,15 @@ NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s';
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:31.690000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:31.690000000Z'
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:39.052000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:39.052000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s';
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:31.690000000Z';
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:39.052000000Z';
NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
@@ -611,7 +607,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -621,7 +616,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -631,7 +625,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -641,7 +634,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -950,8 +942,8 @@ BEGIN TRANSACTION;
@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
ROLLBACK;
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:31.791000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:31.791000000Z'
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:39.148000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:39.148000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
@@ -961,7 +953,7 @@ BEGIN TRANSACTION;
SELECT 1 AS TEST;
ROLLBACK;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:31.791000000Z';
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:39.148000000Z';
NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
@@ -1096,7 +1088,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -1106,7 +1097,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -1116,7 +1106,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -1126,7 +1115,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -1462,8 +1450,8 @@ BEGIN TRANSACTION;
@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
COMMIT;
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:31.896000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:31.896000000Z'
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:39.239000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:39.239000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
@@ -1473,7 +1461,7 @@ BEGIN TRANSACTION;
SELECT 1 AS TEST;
COMMIT;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:31.896000000Z';
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:39.239000000Z';
NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
@@ -1608,7 +1596,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -1618,7 +1605,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -1628,7 +1614,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -1638,7 +1623,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -1876,15 +1860,15 @@ NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
BEGIN TRANSACTION;
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:31.986000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:31.986000000Z'
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:39.327000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:39.327000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
BEGIN TRANSACTION;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:31.986000000Z';
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:39.327000000Z';
NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
@@ -1977,7 +1961,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -1987,7 +1970,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -1997,7 +1979,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -2007,7 +1988,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -2243,14 +2223,14 @@ SET AUTOCOMMIT=FALSE;
@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.060000000Z';
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:39.406000000Z';
NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.060000000Z';
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:39.406000000Z';
NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
@@ -2355,7 +2335,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -2365,7 +2344,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -2375,7 +2353,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -2385,7 +2362,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -2600,13 +2576,13 @@ SET SPANNER.READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.126000000Z';
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:39.494000000Z';
NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.126000000Z';
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:39.494000000Z';
NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
@@ -2697,7 +2673,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -2707,7 +2682,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -2717,7 +2691,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -2727,7 +2700,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -2910,14 +2882,14 @@ SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.195000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:32.195000000Z'
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:39.573000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:39.573000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.195000000Z';
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:39.573000000Z';
NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
SET AUTOCOMMIT=FALSE;
@@ -2996,7 +2968,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -3006,7 +2977,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -3016,7 +2986,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -3026,7 +2995,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -3245,15 +3213,15 @@ NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
COMMIT;
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.266000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:32.266000000Z'
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:39.666000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:39.666000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
COMMIT;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.266000000Z';
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:39.666000000Z';
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
@@ -3346,7 +3314,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -3356,7 +3323,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -3366,7 +3332,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -3376,7 +3341,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -3662,8 +3626,8 @@ SET AUTOCOMMIT=FALSE;
START BATCH DDL;
CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id);
RUN BATCH;
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.323000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:32.323000000Z'
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:39.736000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:39.736000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
@@ -3672,7 +3636,7 @@ START BATCH DDL;
CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id);
RUN BATCH;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.323000000Z';
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:39.736000000Z';
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
@@ -3793,7 +3757,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -3803,7 +3766,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -3813,7 +3775,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -3823,7 +3784,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -4081,14 +4041,14 @@ SET AUTOCOMMIT=FALSE;
START BATCH DDL;
CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id);
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.373000000Z';
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:39.798000000Z';
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
START BATCH DDL;
CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id);
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.373000000Z';
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:39.798000000Z';
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
@@ -4193,7 +4153,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -4203,7 +4162,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -4213,7 +4171,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -4223,7 +4180,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -4438,13 +4394,13 @@ SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
START BATCH DDL;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.424000000Z';
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:39.854000000Z';
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
START BATCH DDL;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.424000000Z';
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:39.854000000Z';
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
@@ -4535,7 +4491,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -4545,7 +4500,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -4555,7 +4509,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -4565,7 +4518,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -4877,8 +4829,8 @@ SET TRANSACTION READ ONLY;
@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
COMMIT;
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.491000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:32.491000000Z'
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:39.926000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:39.926000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
@@ -4888,7 +4840,7 @@ SET TRANSACTION READ ONLY;
SELECT 1 AS TEST;
COMMIT;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.491000000Z';
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:39.926000000Z';
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
@@ -5023,7 +4975,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -5033,7 +4984,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -5043,7 +4993,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -5053,7 +5002,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -5288,15 +5236,15 @@ NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
SET TRANSACTION READ ONLY;
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.542000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:32.542000000Z'
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:39.987000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:39.987000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
SET TRANSACTION READ ONLY;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.542000000Z';
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:39.987000000Z';
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
@@ -5389,7 +5337,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -5399,7 +5346,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -5409,7 +5355,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -5419,7 +5364,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -5641,15 +5585,15 @@ NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s';
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.591000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:32.591000000Z'
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:40.054000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:40.054000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s';
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.591000000Z';
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:40.054000000Z';
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
@@ -5742,7 +5686,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -5752,7 +5695,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -5762,7 +5704,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -5772,7 +5713,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -6088,8 +6028,8 @@ BEGIN TRANSACTION;
@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
ROLLBACK;
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.656000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:32.656000000Z'
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:40.126000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:40.126000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
@@ -6099,7 +6039,7 @@ BEGIN TRANSACTION;
SELECT 1 AS TEST;
ROLLBACK;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.656000000Z';
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:40.126000000Z';
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
@@ -6234,7 +6174,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -6244,7 +6183,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -6254,7 +6192,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -6264,7 +6201,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -6607,8 +6543,8 @@ BEGIN TRANSACTION;
@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
COMMIT;
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.731000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:32.731000000Z'
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:40.209000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:40.209000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
@@ -6618,7 +6554,7 @@ BEGIN TRANSACTION;
SELECT 1 AS TEST;
COMMIT;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.731000000Z';
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:40.209000000Z';
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
@@ -6753,7 +6689,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -6763,7 +6698,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -6773,7 +6707,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -6783,7 +6716,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -7023,15 +6955,15 @@ NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
BEGIN TRANSACTION;
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.784000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:32.784000000Z'
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:40.323000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:40.323000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
BEGIN TRANSACTION;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.784000000Z';
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:40.323000000Z';
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
@@ -7124,7 +7056,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -7134,7 +7065,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -7144,7 +7074,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -7154,7 +7083,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -7394,14 +7322,14 @@ SET AUTOCOMMIT=FALSE;
@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.839000000Z';
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:40.407000000Z';
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.839000000Z';
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:40.407000000Z';
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
@@ -7506,7 +7434,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -7516,7 +7443,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -7526,7 +7452,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -7536,7 +7461,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -7756,13 +7680,13 @@ SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.898000000Z';
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:40.473000000Z';
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
SELECT 1 AS TEST;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.898000000Z';
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:40.473000000Z';
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
@@ -7853,7 +7777,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -7863,7 +7786,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -7873,7 +7795,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -7883,7 +7804,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -8075,14 +7995,14 @@ SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:32.958000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:32.958000000Z'
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:40.565000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:40.565000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:32.958000000Z';
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:40.565000000Z';
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=FALSE;
@@ -8161,7 +8081,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -8171,7 +8090,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -8181,7 +8099,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -8191,7 +8108,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -8392,13 +8308,13 @@ SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
START BATCH DDL;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:33.007000000Z';
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:40.621000000Z';
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
START BATCH DDL;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:33.007000000Z';
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:40.621000000Z';
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
@@ -8489,7 +8405,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -8499,7 +8414,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -8509,7 +8423,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -8519,7 +8432,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -8753,8 +8665,8 @@ SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
SET TRANSACTION READ ONLY;
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:33.057000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:33.057000000Z'
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:40.678000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:40.678000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
@@ -8762,7 +8674,7 @@ SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
SET TRANSACTION READ ONLY;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:33.057000000Z';
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:40.678000000Z';
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
@@ -8869,7 +8781,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -8879,7 +8790,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -8889,7 +8799,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -8899,7 +8808,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -9200,8 +9108,8 @@ SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
UPDATE foo SET bar=1;
COMMIT;
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:33.115000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:33.115000000Z'
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:40.749000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:40.749000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
@@ -9209,8 +9117,8 @@ SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
UPDATE foo SET bar=1;
COMMIT;
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:33.115000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-04-08T18:15:33.115000000Z'
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:40.749000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-06-12T08:45:40.749000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
@@ -9333,7 +9241,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -9343,7 +9250,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -9353,7 +9259,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -9363,7 +9268,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -9596,15 +9500,15 @@ NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:33.165000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:33.165000000Z'
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:40.812000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:40.812000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:33.165000000Z';
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:40.812000000Z';
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
@@ -9697,7 +9601,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -9707,7 +9610,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -9717,7 +9619,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -9727,7 +9628,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -9958,15 +9858,15 @@ NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id);
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:33.216000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:33.216000000Z'
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:40.876000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:40.876000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id);
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:33.216000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-04-08T18:15:33.216000000Z'
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:40.876000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-06-12T08:45:40.876000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
@@ -10061,7 +9961,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -10071,7 +9970,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -10081,7 +9979,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -10091,7 +9988,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -10329,15 +10225,15 @@ NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
UPDATE foo SET bar=1;
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:33.268000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:33.268000000Z'
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:40.934000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:40.934000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
UPDATE foo SET bar=1;
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:33.268000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-04-08T18:15:33.268000000Z'
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:40.934000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-06-12T08:45:40.934000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
@@ -10432,7 +10328,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -10442,7 +10337,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -10452,7 +10346,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -10462,7 +10355,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -10730,16 +10622,16 @@ SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:33.320000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:33.320000000Z'
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:40.992000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:40.992000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
@EXPECT RESULT_SET 'TEST',1
SELECT 1 AS TEST;
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:33.320000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-04-08T18:15:33.320000000Z'
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:40.992000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-06-12T08:45:40.992000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
@@ -10848,7 +10740,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -10858,7 +10749,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -10868,7 +10758,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -10878,7 +10767,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -11125,15 +11013,15 @@ NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:33.371000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:33.371000000Z'
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:41.052000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:41.052000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:33.371000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-04-08T18:15:33.371000000Z'
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:41.052000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-06-12T08:45:41.052000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
@@ -11228,7 +11116,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -11238,7 +11125,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -11248,7 +11134,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -11258,7 +11143,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -11466,14 +11350,14 @@ SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:33.419000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:33.419000000Z'
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:41.108000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:41.108000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
SET AUTOCOMMIT=TRUE;
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:33.419000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-04-08T18:15:33.419000000Z'
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:41.108000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-06-12T08:45:41.108000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=FALSE;
@@ -11554,7 +11438,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -11564,7 +11447,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -11574,7 +11456,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -11584,7 +11465,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -11796,15 +11676,15 @@ NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
SET AUTOCOMMIT=TRUE;
SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s';
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:33.465000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:33.465000000Z'
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:41.166000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:41.166000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
SET AUTOCOMMIT=TRUE;
SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s';
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:33.465000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-04-08T18:15:33.465000000Z'
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:41.166000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-06-12T08:45:41.166000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
@@ -11899,7 +11779,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -11909,7 +11788,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -11919,7 +11797,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -11929,7 +11806,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -12211,8 +12087,8 @@ SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
SELECT 1 AS TEST;
COMMIT;
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:33.517000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:33.517000000Z'
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:41.226000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:41.226000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
@@ -12220,8 +12096,8 @@ SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
SELECT 1 AS TEST;
COMMIT;
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:33.517000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-04-08T18:15:33.517000000Z'
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:41.226000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-06-12T08:45:41.226000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
@@ -12344,7 +12220,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -12354,7 +12229,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -12364,7 +12238,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -12374,7 +12247,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -12604,15 +12476,15 @@ NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:33.565000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:33.565000000Z'
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:41.279000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:41.279000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
SET AUTOCOMMIT=TRUE;
BEGIN TRANSACTION;
@EXPECT EXCEPTION FAILED_PRECONDITION
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:33.565000000Z';
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:41.279000000Z';
NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
SET AUTOCOMMIT=TRUE;
@@ -12705,7 +12577,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -12715,7 +12586,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -12725,7 +12595,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -12735,7 +12604,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -12950,15 +12818,15 @@ NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:33.614000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:33.614000000Z'
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:41.336000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:41.336000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:33.614000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-04-08T18:15:33.614000000Z'
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:41.336000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-06-12T08:45:41.336000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
@@ -13053,7 +12921,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -13063,7 +12930,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -13073,7 +12939,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -13083,7 +12948,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -13305,15 +13169,15 @@ NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:33.664000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:33.664000000Z'
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:41.392000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:41.392000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
SET AUTOCOMMIT=TRUE;
SELECT 1 AS TEST;
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:33.664000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-04-08T18:15:33.664000000Z'
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:41.392000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-06-12T08:45:41.392000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
@@ -13408,7 +13272,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -13418,7 +13281,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -13428,7 +13290,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -13438,7 +13299,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -13630,14 +13490,14 @@ SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
SET AUTOCOMMIT=TRUE;
-SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-04-08T18:15:33.710000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-04-08T18:15:33.710000000Z'
+SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2025-06-12T08:45:41.442000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2025-06-12T08:45:41.442000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
SET AUTOCOMMIT=TRUE;
-SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-04-08T18:15:33.710000000Z';
-@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-04-08T18:15:33.710000000Z'
+SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2025-06-12T08:45:41.442000000Z';
+@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2025-06-12T08:45:41.442000000Z'
SHOW VARIABLE SPANNER.READ_ONLY_STALENESS;
NEW_CONNECTION;
SET SPANNER.READONLY=TRUE;
@@ -13718,7 +13578,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0s';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -13728,7 +13587,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ms';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -13738,7 +13596,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0us';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
@@ -13748,7 +13605,6 @@ SHOW VARIABLE STATEMENT_TIMEOUT;
SET STATEMENT_TIMEOUT=DEFAULT;
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
-@EXPECT EXCEPTION INVALID_ARGUMENT
SET STATEMENT_TIMEOUT='0ns';
@EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0'
SHOW VARIABLE STATEMENT_TIMEOUT;
diff --git a/grpc-google-cloud-spanner-admin-database-v1/pom.xml b/grpc-google-cloud-spanner-admin-database-v1/pom.xml
index 945eda59f56..5621431c4ac 100644
--- a/grpc-google-cloud-spanner-admin-database-v1/pom.xml
+++ b/grpc-google-cloud-spanner-admin-database-v1/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
grpc-google-cloud-spanner-admin-database-v1
- 6.92.1-SNAPSHOT
+ 6.96.1
grpc-google-cloud-spanner-admin-database-v1
GRPC library for grpc-google-cloud-spanner-admin-database-v1
com.google.cloud
google-cloud-spanner-parent
- 6.92.1-SNAPSHOT
+ 6.96.1
diff --git a/grpc-google-cloud-spanner-admin-instance-v1/pom.xml b/grpc-google-cloud-spanner-admin-instance-v1/pom.xml
index 977f31c1529..82d58977134 100644
--- a/grpc-google-cloud-spanner-admin-instance-v1/pom.xml
+++ b/grpc-google-cloud-spanner-admin-instance-v1/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
grpc-google-cloud-spanner-admin-instance-v1
- 6.92.1-SNAPSHOT
+ 6.96.1
grpc-google-cloud-spanner-admin-instance-v1
GRPC library for grpc-google-cloud-spanner-admin-instance-v1
com.google.cloud
google-cloud-spanner-parent
- 6.92.1-SNAPSHOT
+ 6.96.1
diff --git a/grpc-google-cloud-spanner-executor-v1/pom.xml b/grpc-google-cloud-spanner-executor-v1/pom.xml
index 4da1b80ccbe..b09b1065837 100644
--- a/grpc-google-cloud-spanner-executor-v1/pom.xml
+++ b/grpc-google-cloud-spanner-executor-v1/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
grpc-google-cloud-spanner-executor-v1
- 6.92.1-SNAPSHOT
+ 6.96.1
grpc-google-cloud-spanner-executor-v1
GRPC library for google-cloud-spanner
com.google.cloud
google-cloud-spanner-parent
- 6.92.1-SNAPSHOT
+ 6.96.1
diff --git a/grpc-google-cloud-spanner-v1/pom.xml b/grpc-google-cloud-spanner-v1/pom.xml
index 8d478945b85..a5cf8ba9bbd 100644
--- a/grpc-google-cloud-spanner-v1/pom.xml
+++ b/grpc-google-cloud-spanner-v1/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
grpc-google-cloud-spanner-v1
- 6.92.1-SNAPSHOT
+ 6.96.1
grpc-google-cloud-spanner-v1
GRPC library for grpc-google-cloud-spanner-v1
com.google.cloud
google-cloud-spanner-parent
- 6.92.1-SNAPSHOT
+ 6.96.1
diff --git a/pom.xml b/pom.xml
index 064767ba74c..e96d599a8ab 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
com.google.cloud
google-cloud-spanner-parent
pom
- 6.92.1-SNAPSHOT
+ 6.96.1
Google Cloud Spanner Parent
https://github.com/googleapis/java-spanner
@@ -14,7 +14,7 @@
com.google.cloud
sdk-platform-java-config
- 3.46.2
+ 3.50.0
@@ -61,47 +61,47 @@
com.google.api.grpc
proto-google-cloud-spanner-admin-instance-v1
- 6.92.1-SNAPSHOT
+ 6.96.1
com.google.api.grpc
proto-google-cloud-spanner-executor-v1
- 6.92.1-SNAPSHOT
+ 6.96.1
com.google.api.grpc
grpc-google-cloud-spanner-executor-v1
- 6.92.1-SNAPSHOT
+ 6.96.1
com.google.api.grpc
proto-google-cloud-spanner-v1
- 6.92.1-SNAPSHOT
+ 6.96.1
com.google.api.grpc
proto-google-cloud-spanner-admin-database-v1
- 6.92.1-SNAPSHOT
+ 6.96.1
com.google.api.grpc
grpc-google-cloud-spanner-v1
- 6.92.1-SNAPSHOT
+ 6.96.1
com.google.api.grpc
grpc-google-cloud-spanner-admin-instance-v1
- 6.92.1-SNAPSHOT
+ 6.96.1
com.google.api.grpc
grpc-google-cloud-spanner-admin-database-v1
- 6.92.1-SNAPSHOT
+ 6.96.1
com.google.cloud
google-cloud-spanner
- 6.92.1-SNAPSHOT
+ 6.96.1
@@ -153,7 +153,7 @@
org.apache.maven.plugins
maven-compiler-plugin
- 3.13.0
+ 3.14.0
1.8
1.8
@@ -171,7 +171,7 @@
org.apache.maven.plugins
maven-project-info-reports-plugin
- 3.8.0
+ 3.9.0
diff --git a/proto-google-cloud-spanner-admin-database-v1/pom.xml b/proto-google-cloud-spanner-admin-database-v1/pom.xml
index 788d278114f..6d389a502d5 100644
--- a/proto-google-cloud-spanner-admin-database-v1/pom.xml
+++ b/proto-google-cloud-spanner-admin-database-v1/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
proto-google-cloud-spanner-admin-database-v1
- 6.92.1-SNAPSHOT
+ 6.96.1
proto-google-cloud-spanner-admin-database-v1
PROTO library for proto-google-cloud-spanner-admin-database-v1
com.google.cloud
google-cloud-spanner-parent
- 6.92.1-SNAPSHOT
+ 6.96.1
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/AddSplitPointsRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/AddSplitPointsRequest.java
index 17116b490a1..1453b09b37d 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/AddSplitPointsRequest.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/AddSplitPointsRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/AddSplitPointsRequestOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/AddSplitPointsRequestOrBuilder.java
index 81092daf6f0..0e2532e3997 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/AddSplitPointsRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/AddSplitPointsRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface AddSplitPointsRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/AddSplitPointsResponse.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/AddSplitPointsResponse.java
index 2f0dcbe69bd..3017838d91a 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/AddSplitPointsResponse.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/AddSplitPointsResponse.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/AddSplitPointsResponseOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/AddSplitPointsResponseOrBuilder.java
index bc6192ab7b7..5dc4d4e8ea1 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/AddSplitPointsResponseOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/AddSplitPointsResponseOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface AddSplitPointsResponseOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/Backup.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/Backup.java
index d9075635c62..69eef92f093 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/Backup.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/Backup.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupInfo.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupInfo.java
index 0855f7e2abb..6eac977232f 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupInfo.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupInfo.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupInfoOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupInfoOrBuilder.java
index b82d3a70b6f..667998ecc1f 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupInfoOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupInfoOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface BackupInfoOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupInstancePartition.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupInstancePartition.java
index 09ea5bffeae..921c906e77e 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupInstancePartition.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupInstancePartition.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupInstancePartitionOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupInstancePartitionOrBuilder.java
index 40f426ec757..765ba1a205d 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupInstancePartitionOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupInstancePartitionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface BackupInstancePartitionOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupOrBuilder.java
index 3acae52bdd4..e78e4faa823 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface BackupOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupProto.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupProto.java
index 5f04fe540cc..e35aa8f2203 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupProto.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupProto.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public final class BackupProto {
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupSchedule.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupSchedule.java
index 3f7d889ffca..26b77a85fcc 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupSchedule.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupSchedule.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup_schedule.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupScheduleOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupScheduleOrBuilder.java
index c54033e7561..c4536252dc2 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupScheduleOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupScheduleOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup_schedule.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface BackupScheduleOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupScheduleProto.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupScheduleProto.java
index d7f9cf01b12..30fa19ffa90 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupScheduleProto.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupScheduleProto.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup_schedule.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public final class BackupScheduleProto {
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupScheduleSpec.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupScheduleSpec.java
index 62156cd5e8a..96a94d9e686 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupScheduleSpec.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupScheduleSpec.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup_schedule.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupScheduleSpecOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupScheduleSpecOrBuilder.java
index baea3be67b7..f1f06f342e9 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupScheduleSpecOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/BackupScheduleSpecOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup_schedule.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface BackupScheduleSpecOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CommonProto.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CommonProto.java
index 0094fa72738..64a94607588 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CommonProto.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CommonProto.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/common.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public final class CommonProto {
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupEncryptionConfig.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupEncryptionConfig.java
index 844557b05a8..0e3d2fc147d 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupEncryptionConfig.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupEncryptionConfig.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupEncryptionConfigOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupEncryptionConfigOrBuilder.java
index 7702858b6d0..5b6f0bbf57a 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupEncryptionConfigOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupEncryptionConfigOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface CopyBackupEncryptionConfigOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupMetadata.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupMetadata.java
index ee88e7a8275..d7f6d21a8c5 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupMetadata.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupMetadata.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupMetadataOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupMetadataOrBuilder.java
index d22ea5a781f..66c364035d2 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupMetadataOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupMetadataOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface CopyBackupMetadataOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupRequest.java
index a01d7f4bbba..5bd946cffba 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupRequest.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupRequestOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupRequestOrBuilder.java
index 5e24bc2625d..5e08510aea6 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CopyBackupRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface CopyBackupRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupEncryptionConfig.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupEncryptionConfig.java
index 45ee9c0b625..b989586bdc8 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupEncryptionConfig.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupEncryptionConfig.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupEncryptionConfigOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupEncryptionConfigOrBuilder.java
index ebaa4dace63..eb67bb7bd32 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupEncryptionConfigOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupEncryptionConfigOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface CreateBackupEncryptionConfigOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupMetadata.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupMetadata.java
index a3843e34a07..8e959803846 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupMetadata.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupMetadata.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupMetadataOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupMetadataOrBuilder.java
index 82671c8a93a..b83db702108 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupMetadataOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupMetadataOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface CreateBackupMetadataOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupRequest.java
index 406f799f372..867cf12c3aa 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupRequest.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupRequestOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupRequestOrBuilder.java
index d05dc6b74e8..9a8bee3d8bf 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface CreateBackupRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupScheduleRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupScheduleRequest.java
index 4d0f20eee6e..5a25d1d9325 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupScheduleRequest.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupScheduleRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup_schedule.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupScheduleRequestOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupScheduleRequestOrBuilder.java
index 86c1241ed31..ec606a94dc4 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupScheduleRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateBackupScheduleRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup_schedule.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface CreateBackupScheduleRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateDatabaseMetadata.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateDatabaseMetadata.java
index 4aedca61dab..4bc29e87fee 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateDatabaseMetadata.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateDatabaseMetadata.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateDatabaseMetadataOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateDatabaseMetadataOrBuilder.java
index 924387a783f..daa3e2603cd 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateDatabaseMetadataOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateDatabaseMetadataOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface CreateDatabaseMetadataOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateDatabaseRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateDatabaseRequest.java
index 0571e3ca61e..aa5a5a664c7 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateDatabaseRequest.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateDatabaseRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateDatabaseRequestOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateDatabaseRequestOrBuilder.java
index 81e94e4f835..3d8a26f7498 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateDatabaseRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CreateDatabaseRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface CreateDatabaseRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CrontabSpec.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CrontabSpec.java
index d8ecbb452e5..5706d4d278f 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CrontabSpec.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CrontabSpec.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup_schedule.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CrontabSpecOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CrontabSpecOrBuilder.java
index 23e5c0c84d5..cd74356e8dc 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CrontabSpecOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/CrontabSpecOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup_schedule.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface CrontabSpecOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/Database.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/Database.java
index da757aff77d..43e7e73038d 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/Database.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/Database.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DatabaseDialect.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DatabaseDialect.java
index aedf8440fd9..ba3ef78ed50 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DatabaseDialect.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DatabaseDialect.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/common.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DatabaseOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DatabaseOrBuilder.java
index 00ac47b918f..aa74f263a70 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DatabaseOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DatabaseOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface DatabaseOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DatabaseRole.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DatabaseRole.java
index c75a6ec1860..29c7b143877 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DatabaseRole.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DatabaseRole.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DatabaseRoleOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DatabaseRoleOrBuilder.java
index 34aae9b9d32..a51b44658a0 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DatabaseRoleOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DatabaseRoleOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface DatabaseRoleOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DdlStatementActionInfo.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DdlStatementActionInfo.java
index a565564c2d0..725917699e6 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DdlStatementActionInfo.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DdlStatementActionInfo.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DdlStatementActionInfoOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DdlStatementActionInfoOrBuilder.java
index 1e09bb1d50b..fa354dc18c1 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DdlStatementActionInfoOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DdlStatementActionInfoOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface DdlStatementActionInfoOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DeleteBackupRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DeleteBackupRequest.java
index 9abc24b6b66..38934bfd025 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DeleteBackupRequest.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DeleteBackupRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DeleteBackupRequestOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DeleteBackupRequestOrBuilder.java
index 3b6ddb6d95c..f5e662ae800 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DeleteBackupRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DeleteBackupRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface DeleteBackupRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DeleteBackupScheduleRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DeleteBackupScheduleRequest.java
index c8155b4014b..92318be8ccb 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DeleteBackupScheduleRequest.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DeleteBackupScheduleRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup_schedule.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DeleteBackupScheduleRequestOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DeleteBackupScheduleRequestOrBuilder.java
index b5f987da856..9ebe50989fc 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DeleteBackupScheduleRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DeleteBackupScheduleRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup_schedule.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface DeleteBackupScheduleRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DropDatabaseRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DropDatabaseRequest.java
index 8db3e4d918a..0a6cde5bb49 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DropDatabaseRequest.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DropDatabaseRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DropDatabaseRequestOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DropDatabaseRequestOrBuilder.java
index d53e52bd23a..1f7c3fa55a4 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DropDatabaseRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/DropDatabaseRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface DropDatabaseRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/EncryptionConfig.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/EncryptionConfig.java
index 0324f718ba8..2d8ee93ffe1 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/EncryptionConfig.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/EncryptionConfig.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/common.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/EncryptionConfigOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/EncryptionConfigOrBuilder.java
index 8f6956a63aa..2ddbddc4d1d 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/EncryptionConfigOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/EncryptionConfigOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/common.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface EncryptionConfigOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/EncryptionInfo.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/EncryptionInfo.java
index 20d6da04781..71618baa2b1 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/EncryptionInfo.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/EncryptionInfo.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/common.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/EncryptionInfoOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/EncryptionInfoOrBuilder.java
index 4555b55ae97..85e664159e4 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/EncryptionInfoOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/EncryptionInfoOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/common.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface EncryptionInfoOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/FullBackupSpec.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/FullBackupSpec.java
index 38c9429884b..0f2b7288b25 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/FullBackupSpec.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/FullBackupSpec.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/FullBackupSpecOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/FullBackupSpecOrBuilder.java
index 5dc8868f74d..870789fc760 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/FullBackupSpecOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/FullBackupSpecOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface FullBackupSpecOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetBackupRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetBackupRequest.java
index 6a6d5899afa..e356b59db28 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetBackupRequest.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetBackupRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetBackupRequestOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetBackupRequestOrBuilder.java
index 955e7c27e8f..af6a5338b26 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetBackupRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetBackupRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface GetBackupRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetBackupScheduleRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetBackupScheduleRequest.java
index f1bad28f1aa..67f280d71b0 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetBackupScheduleRequest.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetBackupScheduleRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup_schedule.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetBackupScheduleRequestOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetBackupScheduleRequestOrBuilder.java
index ec7a8e1234c..c49489806d0 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetBackupScheduleRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetBackupScheduleRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup_schedule.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface GetBackupScheduleRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseDdlRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseDdlRequest.java
index 680c3ed5316..c1c558a7f08 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseDdlRequest.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseDdlRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseDdlRequestOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseDdlRequestOrBuilder.java
index e44897d9c2d..53162f5c399 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseDdlRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseDdlRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface GetDatabaseDdlRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseDdlResponse.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseDdlResponse.java
index a4fb8d1cdaa..b37275fed55 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseDdlResponse.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseDdlResponse.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseDdlResponseOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseDdlResponseOrBuilder.java
index 7b67bc03170..59db4c110c8 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseDdlResponseOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseDdlResponseOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface GetDatabaseDdlResponseOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseRequest.java
index 8f7d2971a8e..edd2c2687b1 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseRequest.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseRequestOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseRequestOrBuilder.java
index c3a23738f5d..336357afee9 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/GetDatabaseRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface GetDatabaseRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/IncrementalBackupSpec.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/IncrementalBackupSpec.java
index b5b602c8393..826710a30c4 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/IncrementalBackupSpec.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/IncrementalBackupSpec.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/IncrementalBackupSpecOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/IncrementalBackupSpecOrBuilder.java
index 5ab8c97baf1..b7b5f7d97ff 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/IncrementalBackupSpecOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/IncrementalBackupSpecOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface IncrementalBackupSpecOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupOperationsRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupOperationsRequest.java
index f295728a920..80bd3355ee2 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupOperationsRequest.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupOperationsRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupOperationsRequestOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupOperationsRequestOrBuilder.java
index eb007245e0d..74680ec26fe 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupOperationsRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupOperationsRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface ListBackupOperationsRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupOperationsResponse.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupOperationsResponse.java
index e06587f178b..4bfb120108a 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupOperationsResponse.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupOperationsResponse.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupOperationsResponseOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupOperationsResponseOrBuilder.java
index 472604df862..2c9f37a6d98 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupOperationsResponseOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupOperationsResponseOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface ListBackupOperationsResponseOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupSchedulesRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupSchedulesRequest.java
index f5735f7d0d8..2e653f536aa 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupSchedulesRequest.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupSchedulesRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup_schedule.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupSchedulesRequestOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupSchedulesRequestOrBuilder.java
index 2774c2b2c5d..d724d484b8a 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupSchedulesRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupSchedulesRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup_schedule.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface ListBackupSchedulesRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupSchedulesResponse.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupSchedulesResponse.java
index 2c05b2bcb3d..411f9326d81 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupSchedulesResponse.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupSchedulesResponse.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup_schedule.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupSchedulesResponseOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupSchedulesResponseOrBuilder.java
index d6c8eef8495..2cd03274c81 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupSchedulesResponseOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupSchedulesResponseOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup_schedule.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface ListBackupSchedulesResponseOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupsRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupsRequest.java
index 4cbea0711be..9caa3c1d0bd 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupsRequest.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupsRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupsRequestOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupsRequestOrBuilder.java
index fa277412faf..9e4ed9fc194 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupsRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupsRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface ListBackupsRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupsResponse.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupsResponse.java
index 2dab3799c1f..6f93e3d43c3 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupsResponse.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupsResponse.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupsResponseOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupsResponseOrBuilder.java
index 12d9082f4c8..ad84f12ec96 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupsResponseOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListBackupsResponseOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface ListBackupsResponseOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseOperationsRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseOperationsRequest.java
index 42be441a417..c74939b15b3 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseOperationsRequest.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseOperationsRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseOperationsRequestOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseOperationsRequestOrBuilder.java
index 2c64f640b1c..7322a1d008c 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseOperationsRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseOperationsRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface ListDatabaseOperationsRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseOperationsResponse.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseOperationsResponse.java
index 5dcf9817c5f..81c9702e4d3 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseOperationsResponse.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseOperationsResponse.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseOperationsResponseOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseOperationsResponseOrBuilder.java
index 6bcde0c825d..0f76f832092 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseOperationsResponseOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseOperationsResponseOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface ListDatabaseOperationsResponseOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseRolesRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseRolesRequest.java
index 1ce36f618cd..f68cbcff06c 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseRolesRequest.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseRolesRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseRolesRequestOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseRolesRequestOrBuilder.java
index 15f3dd5b4ac..6207b0eaff7 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseRolesRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseRolesRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface ListDatabaseRolesRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseRolesResponse.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseRolesResponse.java
index 59a600988cb..f1c0d01fcde 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseRolesResponse.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseRolesResponse.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseRolesResponseOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseRolesResponseOrBuilder.java
index 15bce3bab9f..5de9cd5a326 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseRolesResponseOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabaseRolesResponseOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface ListDatabaseRolesResponseOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabasesRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabasesRequest.java
index e8c0d8f07db..e8f5f5bc730 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabasesRequest.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabasesRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabasesRequestOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabasesRequestOrBuilder.java
index 40f87c21a34..c58f42de608 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabasesRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabasesRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface ListDatabasesRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabasesResponse.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabasesResponse.java
index ff69ca2b978..d529b33f068 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabasesResponse.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabasesResponse.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabasesResponseOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabasesResponseOrBuilder.java
index ecfaad3535f..92b4e393d80 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabasesResponseOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/ListDatabasesResponseOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface ListDatabasesResponseOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/OperationProgress.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/OperationProgress.java
index 79cc34ce04e..28cc66a538e 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/OperationProgress.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/OperationProgress.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/common.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/OperationProgressOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/OperationProgressOrBuilder.java
index 7a150b98e9d..94977587a88 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/OperationProgressOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/OperationProgressOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/common.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface OperationProgressOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/OptimizeRestoredDatabaseMetadata.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/OptimizeRestoredDatabaseMetadata.java
index d7538b9c07b..1d9902a79be 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/OptimizeRestoredDatabaseMetadata.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/OptimizeRestoredDatabaseMetadata.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/OptimizeRestoredDatabaseMetadataOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/OptimizeRestoredDatabaseMetadataOrBuilder.java
index 5e238c42f0e..a9e20479e9d 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/OptimizeRestoredDatabaseMetadataOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/OptimizeRestoredDatabaseMetadataOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface OptimizeRestoredDatabaseMetadataOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseEncryptionConfig.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseEncryptionConfig.java
index 42b5c9cbb25..1d87fffd6de 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseEncryptionConfig.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseEncryptionConfig.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseEncryptionConfigOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseEncryptionConfigOrBuilder.java
index c0c038fd57e..f3c8c17ff04 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseEncryptionConfigOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseEncryptionConfigOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface RestoreDatabaseEncryptionConfigOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseMetadata.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseMetadata.java
index 7ed658910ab..cc3db47a2f9 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseMetadata.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseMetadata.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseMetadataOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseMetadataOrBuilder.java
index 1b9eeac16cd..cb08525d059 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseMetadataOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseMetadataOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface RestoreDatabaseMetadataOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseRequest.java
index 2f553de96e8..8c6612f3ee9 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseRequest.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseRequestOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseRequestOrBuilder.java
index bca3482e102..31b654e3509 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreDatabaseRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface RestoreDatabaseRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreInfo.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreInfo.java
index fc31075bd6b..296d924ccd8 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreInfo.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreInfo.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreInfoOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreInfoOrBuilder.java
index 92d4769d3d7..2b61c6b7533 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreInfoOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreInfoOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface RestoreInfoOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreSourceType.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreSourceType.java
index 64c3e3d1163..c619ec7e52c 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreSourceType.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/RestoreSourceType.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/SpannerDatabaseAdminProto.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/SpannerDatabaseAdminProto.java
index 2e692633260..520c47553ae 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/SpannerDatabaseAdminProto.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/SpannerDatabaseAdminProto.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public final class SpannerDatabaseAdminProto {
@@ -149,325 +149,332 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
static {
java.lang.String[] descriptorData = {
- "\n"
- + "=google/spanner/admin/database/v1/spanner_database_admin.proto\022 google.spanner."
+ "\n=google/spanner/admin/database/v1/spann"
+ + "er_database_admin.proto\022 google.spanner."
+ "admin.database.v1\032\034google/api/annotation"
+ "s.proto\032\027google/api/client.proto\032\037google"
+ "/api/field_behavior.proto\032\031google/api/re"
+ "source.proto\032\036google/iam/v1/iam_policy.p"
+ "roto\032\032google/iam/v1/policy.proto\032#google"
- + "/longrunning/operations.proto\032\033google/protobuf/empty.proto\032"
- + " google/protobuf/field_mask.proto\032\034google/protobuf/struct.pro"
+ + "/longrunning/operations.proto\032\033google/pr"
+ + "otobuf/empty.proto\032 google/protobuf/fiel"
+ + "d_mask.proto\032\034google/protobuf/struct.pro"
+ "to\032\037google/protobuf/timestamp.proto\032-goo"
- + "gle/spanner/admin/database/v1/backup.proto\0326google/spanner/admin/database/v1/bac"
- + "kup_schedule.proto\032-google/spanner/admin/database/v1/common.proto\"\253\001\n"
- + "\013RestoreInfo\022H\n"
- + "\013source_type\030\001"
- + " \001(\01623.google.spanner.admin.database.v1.RestoreSourceType\022C\n"
- + "\013backup_info\030\002"
- + " \001(\0132,.google.spanner.admin.database.v1.BackupInfoH\000B\r\n"
- + "\013source_info\"\312\006\n"
- + "\010Database\022\021\n"
- + "\004name\030\001 \001(\tB\003\340A\002\022D\n"
- + "\005state\030\002"
- + " \001(\01620.google.spanner.admin.database.v1.Database.StateB\003\340A\003\0224\n"
- + "\013create_time\030\003 \001(\0132\032.google.protobuf.TimestampB\003\340A\003\022H\n"
- + "\014restore_info\030\004"
- + " \001(\0132-.google.spanner.admin.database.v1.RestoreInfoB\003\340A\003\022R\n"
- + "\021encryption_config\030\005"
- + " \001(\01322.google.spanner.admin.database.v1.EncryptionConfigB\003\340A\003\022N\n"
- + "\017encryption_info\030\010"
- + " \003(\01320.google.spanner.admin.database.v1.EncryptionInfoB\003\340A\003\022%\n"
- + "\030version_retention_period\030\006 \001(\tB\003\340A\003\022>\n"
- + "\025earliest_version_time\030\007"
- + " \001(\0132\032.google.protobuf.TimestampB\003\340A\003\022\033\n"
- + "\016default_leader\030\t \001(\tB\003\340A\003\022P\n"
- + "\020database_dialect\030\n"
- + " \001(\01621.google.spanner.admin.database.v1.DatabaseDialectB\003\340A\003\022\036\n"
- + "\026enable_drop_protection\030\013 \001(\010\022\030\n"
- + "\013reconciling\030\014 \001(\010B\003\340A\003\"M\n"
- + "\005State\022\025\n"
- + "\021STATE_UNSPECIFIED\020\000\022\014\n"
- + "\010CREATING\020\001\022\t\n"
- + "\005READY\020\002\022\024\n"
- + "\020READY_OPTIMIZING\020\003:b\352A_\n"
- + "\037spanner.googleapis.com/Database\022\332A\006pare"
- + "nt\202\323\344\223\002/\022-/v1/{parent=projects/*/instances/*}/databases\022\244\002\n"
- + "\016CreateDatabase\0227.google.spanner.admin.database.v1.CreateData"
- + "baseRequest\032\035.google.longrunning.Operation\"\271\001\312Ad\n"
- + ")google.spanner.admin.database.v1.Database\0227google.spanner.admin.databa"
- + "se.v1.CreateDatabaseMetadata\332A\027parent,cr"
- + "eate_statement\202\323\344\223\0022\"-/v1/{parent=projects/*/instances/*}/databases:\001*\022\255\001\n"
- + "\013GetDatabase\0224.google.spanner.admin.database.v"
- + "1.GetDatabaseRequest\032*.google.spanner.ad"
- + "min.database.v1.Database\"<\332A\004name\202\323\344\223\002/\022"
- + "-/v1/{name=projects/*/instances/*/databases/*}\022\357\001\n"
- + "\016UpdateDatabase\0227.google.spann"
- + "er.admin.database.v1.UpdateDatabaseRequest\032\035.google.longrunning.Operation\"\204\001\312A\"\n"
- + "\010Database\022\026UpdateDatabaseMetadata\332A\024data"
- + "base,update_mask\202\323\344\223\002B26/v1/{database.na"
- + "me=projects/*/instances/*/databases/*}:\010database\022\235\002\n"
- + "\021UpdateDatabaseDdl\022:.google.spanner.admin.database.v1.UpdateDatabase"
- + "DdlRequest\032\035.google.longrunning.Operation\"\254\001\312AS\n"
- + "\025google.protobuf.Empty\022:google.spanner.admin.database.v1.UpdateDatabaseD"
- + "dlMetadata\332A\023database,statements\202\323\344\223\002:25"
- + "/v1/{database=projects/*/instances/*/databases/*}/ddl:\001*\022\243\001\n"
- + "\014DropDatabase\0225.google.spanner.admin.database.v1.DropDatabas"
- + "eRequest\032\026.google.protobuf.Empty\"D\332A\010dat"
- + "abase\202\323\344\223\0023*1/v1/{database=projects/*/instances/*/databases/*}\022\315\001\n"
- + "\016GetDatabaseDdl\0227.google.spanner.admin.database.v1.Get"
- + "DatabaseDdlRequest\0328.google.spanner.admi"
- + "n.database.v1.GetDatabaseDdlResponse\"H\332A"
- + "\010database\202\323\344\223\0027\0225/v1/{database=projects/*/instances/*/databases/*}/ddl\022\302\002\n"
- + "\014SetIamPolicy\022\".google.iam.v1.SetIamPolicyRequ"
- + "est\032\025.google.iam.v1.Policy\"\366\001\332A\017resource"
- + ",policy\202\323\344\223\002\335\001\">/v1/{resource=projects/*"
- + "/instances/*/databases/*}:setIamPolicy:\001*ZA\"/v1/{resource=projects/*/i"
- + "nstances/*/databases/*}:getIamPolicy:\001*ZA\".google.spanner.admin.database.v1.ListBa"
- + "ckupOperationsResponse\"E\332A\006parent\202\323\344\223\0026\022"
- + "4/v1/{parent=projects/*/instances/*}/backupOperations\022\334\001\n"
- + "\021ListDatabaseRoles\022:.google.spanner.admin.database.v1.ListDatab"
- + "aseRolesRequest\032;.google.spanner.admin.d"
- + "atabase.v1.ListDatabaseRolesResponse\"N\332A"
- + "\006parent\202\323\344\223\002?\022=/v1/{parent=projects/*/instances/*/databases/*}/databaseRoles\022\350\001\n"
- + "\016AddSplitPoints\0227.google.spanner.admin.d"
- + "atabase.v1.AddSplitPointsRequest\0328.google.spanner.admin.database.v1.AddSplitPoin"
- + "tsResponse\"c\332A\025database,split_points\202\323\344\223"
- + "\002E\"@/v1/{database=projects/*/instances/*/databases/*}:addSplitPoints:\001*\022\216\002\n"
- + "\024CreateBackupSchedule\022=.google.spanner.admin."
- + "database.v1.CreateBackupScheduleRequest\0320.google.spanner.admin.database.v1.Backu"
- + "pSchedule\"\204\001\332A)parent,backup_schedule,ba"
- + "ckup_schedule_id\202\323\344\223\002R\"?/v1/{parent=proj"
- + "ects/*/instances/*/databases/*}/backupSchedules:\017backup_schedule\022\321\001\n"
- + "\021GetBackupSchedule\022:.google.spanner.admin.database.v"
- + "1.GetBackupScheduleRequest\0320.google.span"
- + "ner.admin.database.v1.BackupSchedule\"N\332A"
- + "\004name\202\323\344\223\002A\022?/v1/{name=projects/*/instances/*/databases/*/backupSchedules/*}\022\220\002\n"
- + "\024UpdateBackupSchedule\022=.google.spanner.admin.database.v1.UpdateBackupScheduleReq"
- + "uest\0320.google.spanner.admin.database.v1."
- + "BackupSchedule\"\206\001\332A\033backup_schedule,upda"
- + "te_mask\202\323\344\223\002b2O/v1/{backup_schedule.name"
- + "=projects/*/instances/*/databases/*/backupSchedules/*}:\017backup_schedule\022\275\001\n"
- + "\024DeleteBackupSchedule\022=.google.spanner.admin."
- + "database.v1.DeleteBackupScheduleRequest\032"
- + "\026.google.protobuf.Empty\"N\332A\004name\202\323\344\223\002A*?"
- + "/v1/{name=projects/*/instances/*/databases/*/backupSchedules/*}\022\344\001\n"
- + "\023ListBackupSchedules\022<.google.spanner.admin.database."
- + "v1.ListBackupSchedulesRequest\032=.google.spanner.admin.database.v1.ListBackupSched"
- + "ulesResponse\"P\332A\006parent\202\323\344\223\002A\022?/v1/{pare"
- + "nt=projects/*/instances/*/databases/*}/b"
- + "ackupSchedules\032x\312A\026spanner.googleapis.co"
- + "m\322A\\https://www.googleapis.com/auth/clou"
- + "d-platform,https://www.googleapis.com/auth/spanner.adminB\326\003\n"
- + "$com.google.spanner.admin.database.v1B\031SpannerDatabaseAdminP"
- + "rotoP\001ZFcloud.google.com/go/spanner/admi"
- + "n/database/apiv1/databasepb;databasepb\252\002"
- + "&Google.Cloud.Spanner.Admin.Database.V1\312"
- + "\002&Google\\Cloud\\Spanner\\Admin\\Database\\V1"
- + "\352\002+Google::Cloud::Spanner::Admin::Database::V1\352AJ\n"
- + "\037spanner.googleapis.com/Instan"
- + "ce\022\'projects/{project}/instances/{instance}\352A{\n"
- + "(spanner.googleapis.com/InstancePartition\022Oprojects/{project}/instances/{"
- + "instance}/instancePartitions/{instance_partition}b\006proto3"
+ + "gle/spanner/admin/database/v1/backup.pro"
+ + "to\0326google/spanner/admin/database/v1/bac"
+ + "kup_schedule.proto\032-google/spanner/admin"
+ + "/database/v1/common.proto\"\253\001\n\013RestoreInf"
+ + "o\022H\n\013source_type\030\001 \001(\01623.google.spanner."
+ + "admin.database.v1.RestoreSourceType\022C\n\013b"
+ + "ackup_info\030\002 \001(\0132,.google.spanner.admin."
+ + "database.v1.BackupInfoH\000B\r\n\013source_info\""
+ + "\312\006\n\010Database\022\021\n\004name\030\001 \001(\tB\003\340A\002\022D\n\005state"
+ + "\030\002 \001(\01620.google.spanner.admin.database.v"
+ + "1.Database.StateB\003\340A\003\0224\n\013create_time\030\003 \001"
+ + "(\0132\032.google.protobuf.TimestampB\003\340A\003\022H\n\014r"
+ + "estore_info\030\004 \001(\0132-.google.spanner.admin"
+ + ".database.v1.RestoreInfoB\003\340A\003\022R\n\021encrypt"
+ + "ion_config\030\005 \001(\01322.google.spanner.admin."
+ + "database.v1.EncryptionConfigB\003\340A\003\022N\n\017enc"
+ + "ryption_info\030\010 \003(\01320.google.spanner.admi"
+ + "n.database.v1.EncryptionInfoB\003\340A\003\022%\n\030ver"
+ + "sion_retention_period\030\006 \001(\tB\003\340A\003\022>\n\025earl"
+ + "iest_version_time\030\007 \001(\0132\032.google.protobu"
+ + "f.TimestampB\003\340A\003\022\033\n\016default_leader\030\t \001(\t"
+ + "B\003\340A\003\022P\n\020database_dialect\030\n \001(\01621.google"
+ + ".spanner.admin.database.v1.DatabaseDiale"
+ + "ctB\003\340A\003\022\036\n\026enable_drop_protection\030\013 \001(\010\022"
+ + "\030\n\013reconciling\030\014 \001(\010B\003\340A\003\"M\n\005State\022\025\n\021ST"
+ + "ATE_UNSPECIFIED\020\000\022\014\n\010CREATING\020\001\022\t\n\005READY"
+ + "\020\002\022\024\n\020READY_OPTIMIZING\020\003:b\352A_\n\037spanner.g"
+ + "oogleapis.com/Database\022\332A\006parent\202\323\344\223\002/\022-"
+ + "/v1/{parent=projects/*/instances/*}/data"
+ + "bases\022\244\002\n\016CreateDatabase\0227.google.spanne"
+ + "r.admin.database.v1.CreateDatabaseReques"
+ + "t\032\035.google.longrunning.Operation\"\271\001\312Ad\n)"
+ + "google.spanner.admin.database.v1.Databas"
+ + "e\0227google.spanner.admin.database.v1.Crea"
+ + "teDatabaseMetadata\332A\027parent,create_state"
+ + "ment\202\323\344\223\0022\"-/v1/{parent=projects/*/insta"
+ + "nces/*}/databases:\001*\022\255\001\n\013GetDatabase\0224.g"
+ + "oogle.spanner.admin.database.v1.GetDatab"
+ + "aseRequest\032*.google.spanner.admin.databa"
+ + "se.v1.Database\"<\332A\004name\202\323\344\223\002/\022-/v1/{name"
+ + "=projects/*/instances/*/databases/*}\022\357\001\n"
+ + "\016UpdateDatabase\0227.google.spanner.admin.d"
+ + "atabase.v1.UpdateDatabaseRequest\032\035.googl"
+ + "e.longrunning.Operation\"\204\001\312A\"\n\010Database\022"
+ + "\026UpdateDatabaseMetadata\332A\024database,updat"
+ + "e_mask\202\323\344\223\002B26/v1/{database.name=project"
+ + "s/*/instances/*/databases/*}:\010database\022\235"
+ + "\002\n\021UpdateDatabaseDdl\022:.google.spanner.ad"
+ + "min.database.v1.UpdateDatabaseDdlRequest"
+ + "\032\035.google.longrunning.Operation\"\254\001\312AS\n\025g"
+ + "oogle.protobuf.Empty\022:google.spanner.adm"
+ + "in.database.v1.UpdateDatabaseDdlMetadata"
+ + "\332A\023database,statements\202\323\344\223\002:25/v1/{datab"
+ + "ase=projects/*/instances/*/databases/*}/"
+ + "ddl:\001*\022\243\001\n\014DropDatabase\0225.google.spanner"
+ + ".admin.database.v1.DropDatabaseRequest\032\026"
+ + ".google.protobuf.Empty\"D\332A\010database\202\323\344\223\002"
+ + "3*1/v1/{database=projects/*/instances/*/"
+ + "databases/*}\022\315\001\n\016GetDatabaseDdl\0227.google"
+ + ".spanner.admin.database.v1.GetDatabaseDd"
+ + "lRequest\0328.google.spanner.admin.database"
+ + ".v1.GetDatabaseDdlResponse\"H\332A\010database\202"
+ + "\323\344\223\0027\0225/v1/{database=projects/*/instance"
+ + "s/*/databases/*}/ddl\022\302\002\n\014SetIamPolicy\022\"."
+ + "google.iam.v1.SetIamPolicyRequest\032\025.goog"
+ + "le.iam.v1.Policy\"\366\001\332A\017resource,policy\202\323\344"
+ + "\223\002\335\001\">/v1/{resource=projects/*/instances"
+ + "/*/databases/*}:setIamPolicy:\001*ZA\"/v1/{resource=projects/*/instances/*"
+ + "/databases/*}:getIamPolicy:\001*ZA\".google.sp"
+ + "anner.admin.database.v1.ListBackupOperat"
+ + "ionsResponse\"E\332A\006parent\202\323\344\223\0026\0224/v1/{pare"
+ + "nt=projects/*/instances/*}/backupOperati"
+ + "ons\022\334\001\n\021ListDatabaseRoles\022:.google.spann"
+ + "er.admin.database.v1.ListDatabaseRolesRe"
+ + "quest\032;.google.spanner.admin.database.v1"
+ + ".ListDatabaseRolesResponse\"N\332A\006parent\202\323\344"
+ + "\223\002?\022=/v1/{parent=projects/*/instances/*/"
+ + "databases/*}/databaseRoles\022\350\001\n\016AddSplitP"
+ + "oints\0227.google.spanner.admin.database.v1"
+ + ".AddSplitPointsRequest\0328.google.spanner."
+ + "admin.database.v1.AddSplitPointsResponse"
+ + "\"c\332A\025database,split_points\202\323\344\223\002E\"@/v1/{d"
+ + "atabase=projects/*/instances/*/databases"
+ + "/*}:addSplitPoints:\001*\022\216\002\n\024CreateBackupSc"
+ + "hedule\022=.google.spanner.admin.database.v"
+ + "1.CreateBackupScheduleRequest\0320.google.s"
+ + "panner.admin.database.v1.BackupSchedule\""
+ + "\204\001\332A)parent,backup_schedule,backup_sched"
+ + "ule_id\202\323\344\223\002R\"?/v1/{parent=projects/*/ins"
+ + "tances/*/databases/*}/backupSchedules:\017b"
+ + "ackup_schedule\022\321\001\n\021GetBackupSchedule\022:.g"
+ + "oogle.spanner.admin.database.v1.GetBacku"
+ + "pScheduleRequest\0320.google.spanner.admin."
+ + "database.v1.BackupSchedule\"N\332A\004name\202\323\344\223\002"
+ + "A\022?/v1/{name=projects/*/instances/*/data"
+ + "bases/*/backupSchedules/*}\022\220\002\n\024UpdateBac"
+ + "kupSchedule\022=.google.spanner.admin.datab"
+ + "ase.v1.UpdateBackupScheduleRequest\0320.goo"
+ + "gle.spanner.admin.database.v1.BackupSche"
+ + "dule\"\206\001\332A\033backup_schedule,update_mask\202\323\344"
+ + "\223\002b2O/v1/{backup_schedule.name=projects/"
+ + "*/instances/*/databases/*/backupSchedule"
+ + "s/*}:\017backup_schedule\022\275\001\n\024DeleteBackupSc"
+ + "hedule\022=.google.spanner.admin.database.v"
+ + "1.DeleteBackupScheduleRequest\032\026.google.p"
+ + "rotobuf.Empty\"N\332A\004name\202\323\344\223\002A*?/v1/{name="
+ + "projects/*/instances/*/databases/*/backu"
+ + "pSchedules/*}\022\344\001\n\023ListBackupSchedules\022<."
+ + "google.spanner.admin.database.v1.ListBac"
+ + "kupSchedulesRequest\032=.google.spanner.adm"
+ + "in.database.v1.ListBackupSchedulesRespon"
+ + "se\"P\332A\006parent\202\323\344\223\002A\022?/v1/{parent=project"
+ + "s/*/instances/*/databases/*}/backupSched"
+ + "ules\032x\312A\026spanner.googleapis.com\322A\\https:"
+ + "//www.googleapis.com/auth/cloud-platform"
+ + ",https://www.googleapis.com/auth/spanner"
+ + ".adminB\326\003\n$com.google.spanner.admin.data"
+ + "base.v1B\031SpannerDatabaseAdminProtoP\001ZFcl"
+ + "oud.google.com/go/spanner/admin/database"
+ + "/apiv1/databasepb;databasepb\252\002&Google.Cl"
+ + "oud.Spanner.Admin.Database.V1\312\002&Google\\C"
+ + "loud\\Spanner\\Admin\\Database\\V1\352\002+Google:"
+ + ":Cloud::Spanner::Admin::Database::V1\352AJ\n"
+ + "\037spanner.googleapis.com/Instance\022\'projec"
+ + "ts/{project}/instances/{instance}\352A{\n(sp"
+ + "anner.googleapis.com/InstancePartition\022O"
+ + "projects/{project}/instances/{instance}/"
+ + "instancePartitions/{instance_partition}b"
+ + "\006proto3"
};
descriptor =
com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
@@ -582,7 +589,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
internal_static_google_spanner_admin_database_v1_UpdateDatabaseDdlRequest_descriptor,
new java.lang.String[] {
- "Database", "Statements", "OperationId", "ProtoDescriptors",
+ "Database", "Statements", "OperationId", "ProtoDescriptors", "ThroughputMode",
});
internal_static_google_spanner_admin_database_v1_DdlStatementActionInfo_descriptor =
getDescriptor().getMessageTypes().get(10);
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/SplitPoints.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/SplitPoints.java
index 9eaeabeb904..af43631d85e 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/SplitPoints.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/SplitPoints.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/SplitPointsOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/SplitPointsOrBuilder.java
index 10dae85b3e9..1fb9b0c0804 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/SplitPointsOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/SplitPointsOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface SplitPointsOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateBackupRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateBackupRequest.java
index 5a9e2a50c2e..e8defee4d7b 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateBackupRequest.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateBackupRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateBackupRequestOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateBackupRequestOrBuilder.java
index 4be76913ca5..e2670913f2c 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateBackupRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateBackupRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface UpdateBackupRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateBackupScheduleRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateBackupScheduleRequest.java
index fa01b59273b..ad97c05f920 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateBackupScheduleRequest.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateBackupScheduleRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup_schedule.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateBackupScheduleRequestOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateBackupScheduleRequestOrBuilder.java
index dac9f8993e8..1d75814b571 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateBackupScheduleRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateBackupScheduleRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/backup_schedule.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface UpdateBackupScheduleRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseDdlMetadata.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseDdlMetadata.java
index 2fd35118324..64967052c71 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseDdlMetadata.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseDdlMetadata.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseDdlMetadataOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseDdlMetadataOrBuilder.java
index decd391f11e..026273ff43d 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseDdlMetadataOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseDdlMetadataOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface UpdateDatabaseDdlMetadataOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseDdlRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseDdlRequest.java
index b8ff463ee20..b278ec85754 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseDdlRequest.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseDdlRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
@@ -332,6 +332,27 @@ public com.google.protobuf.ByteString getProtoDescriptors() {
return protoDescriptors_;
}
+ public static final int THROUGHPUT_MODE_FIELD_NUMBER = 5;
+ private boolean throughputMode_ = false;
+
+ /**
+ *
+ *
+ *
+ * Optional. This field is exposed to be used by the Spanner Migration Tool.
+ * For more details, see
+ * [SMT](https://github.com/GoogleCloudPlatform/spanner-migration-tool).
+ *
+ *
+ * bool throughput_mode = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The throughputMode.
+ */
+ @java.lang.Override
+ public boolean getThroughputMode() {
+ return throughputMode_;
+ }
+
private byte memoizedIsInitialized = -1;
@java.lang.Override
@@ -358,6 +379,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
if (!protoDescriptors_.isEmpty()) {
output.writeBytes(4, protoDescriptors_);
}
+ if (throughputMode_ != false) {
+ output.writeBool(5, throughputMode_);
+ }
getUnknownFields().writeTo(output);
}
@@ -384,6 +408,9 @@ public int getSerializedSize() {
if (!protoDescriptors_.isEmpty()) {
size += com.google.protobuf.CodedOutputStream.computeBytesSize(4, protoDescriptors_);
}
+ if (throughputMode_ != false) {
+ size += com.google.protobuf.CodedOutputStream.computeBoolSize(5, throughputMode_);
+ }
size += getUnknownFields().getSerializedSize();
memoizedSize = size;
return size;
@@ -404,6 +431,7 @@ public boolean equals(final java.lang.Object obj) {
if (!getStatementsList().equals(other.getStatementsList())) return false;
if (!getOperationId().equals(other.getOperationId())) return false;
if (!getProtoDescriptors().equals(other.getProtoDescriptors())) return false;
+ if (getThroughputMode() != other.getThroughputMode()) return false;
if (!getUnknownFields().equals(other.getUnknownFields())) return false;
return true;
}
@@ -425,6 +453,8 @@ public int hashCode() {
hash = (53 * hash) + getOperationId().hashCode();
hash = (37 * hash) + PROTO_DESCRIPTORS_FIELD_NUMBER;
hash = (53 * hash) + getProtoDescriptors().hashCode();
+ hash = (37 * hash) + THROUGHPUT_MODE_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getThroughputMode());
hash = (29 * hash) + getUnknownFields().hashCode();
memoizedHashCode = hash;
return hash;
@@ -585,6 +615,7 @@ public Builder clear() {
statements_ = com.google.protobuf.LazyStringArrayList.emptyList();
operationId_ = "";
protoDescriptors_ = com.google.protobuf.ByteString.EMPTY;
+ throughputMode_ = false;
return this;
}
@@ -636,6 +667,9 @@ private void buildPartial0(
if (((from_bitField0_ & 0x00000008) != 0)) {
result.protoDescriptors_ = protoDescriptors_;
}
+ if (((from_bitField0_ & 0x00000010) != 0)) {
+ result.throughputMode_ = throughputMode_;
+ }
}
@java.lang.Override
@@ -708,6 +742,9 @@ public Builder mergeFrom(com.google.spanner.admin.database.v1.UpdateDatabaseDdlR
if (other.getProtoDescriptors() != com.google.protobuf.ByteString.EMPTY) {
setProtoDescriptors(other.getProtoDescriptors());
}
+ if (other.getThroughputMode() != false) {
+ setThroughputMode(other.getThroughputMode());
+ }
this.mergeUnknownFields(other.getUnknownFields());
onChanged();
return this;
@@ -759,6 +796,12 @@ public Builder mergeFrom(
bitField0_ |= 0x00000008;
break;
} // case 34
+ case 40:
+ {
+ throughputMode_ = input.readBool();
+ bitField0_ |= 0x00000010;
+ break;
+ } // case 40
default:
{
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
@@ -1390,6 +1433,68 @@ public Builder clearProtoDescriptors() {
return this;
}
+ private boolean throughputMode_;
+
+ /**
+ *
+ *
+ *
+ * Optional. This field is exposed to be used by the Spanner Migration Tool.
+ * For more details, see
+ * [SMT](https://github.com/GoogleCloudPlatform/spanner-migration-tool).
+ *
+ *
+ * bool throughput_mode = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The throughputMode.
+ */
+ @java.lang.Override
+ public boolean getThroughputMode() {
+ return throughputMode_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. This field is exposed to be used by the Spanner Migration Tool.
+ * For more details, see
+ * [SMT](https://github.com/GoogleCloudPlatform/spanner-migration-tool).
+ *
+ *
+ * bool throughput_mode = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @param value The throughputMode to set.
+ * @return This builder for chaining.
+ */
+ public Builder setThroughputMode(boolean value) {
+
+ throughputMode_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. This field is exposed to be used by the Spanner Migration Tool.
+ * For more details, see
+ * [SMT](https://github.com/GoogleCloudPlatform/spanner-migration-tool).
+ *
+ *
+ * bool throughput_mode = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearThroughputMode() {
+ bitField0_ = (bitField0_ & ~0x00000010);
+ throughputMode_ = false;
+ onChanged();
+ return this;
+ }
+
@java.lang.Override
public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseDdlRequestOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseDdlRequestOrBuilder.java
index 755576518a9..62a9784dac3 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseDdlRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseDdlRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface UpdateDatabaseDdlRequestOrBuilder
@@ -199,4 +199,19 @@ public interface UpdateDatabaseDdlRequestOrBuilder
* @return The protoDescriptors.
*/
com.google.protobuf.ByteString getProtoDescriptors();
+
+ /**
+ *
+ *
+ *
+ * Optional. This field is exposed to be used by the Spanner Migration Tool.
+ * For more details, see
+ * [SMT](https://github.com/GoogleCloudPlatform/spanner-migration-tool).
+ *
+ *
+ * bool throughput_mode = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The throughputMode.
+ */
+ boolean getThroughputMode();
}
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseMetadata.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseMetadata.java
index dfe5c89b81a..827ca8cc45a 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseMetadata.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseMetadata.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseMetadataOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseMetadataOrBuilder.java
index 1ec76b93b7f..8b3529821cb 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseMetadataOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseMetadataOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface UpdateDatabaseMetadataOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseRequest.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseRequest.java
index d1cc8095af2..4de08376235 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseRequest.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseRequestOrBuilder.java b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseRequestOrBuilder.java
index 7ee5764ef02..77c5cccf744 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/java/com/google/spanner/admin/database/v1/UpdateDatabaseRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/database/v1/spanner_database_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.database.v1;
public interface UpdateDatabaseRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-database-v1/src/main/proto/google/spanner/admin/database/v1/spanner_database_admin.proto b/proto-google-cloud-spanner-admin-database-v1/src/main/proto/google/spanner/admin/database/v1/spanner_database_admin.proto
index 084f98c68b8..36e06f1e1f0 100644
--- a/proto-google-cloud-spanner-admin-database-v1/src/main/proto/google/spanner/admin/database/v1/spanner_database_admin.proto
+++ b/proto-google-cloud-spanner-admin-database-v1/src/main/proto/google/spanner/admin/database/v1/spanner_database_admin.proto
@@ -813,6 +813,11 @@ message UpdateDatabaseDdlRequest {
// For more details, see protobuffer [self
// description](https://developers.google.com/protocol-buffers/docs/techniques#self-description).
bytes proto_descriptors = 4 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. This field is exposed to be used by the Spanner Migration Tool.
+ // For more details, see
+ // [SMT](https://github.com/GoogleCloudPlatform/spanner-migration-tool).
+ bool throughput_mode = 5 [(google.api.field_behavior) = OPTIONAL];
}
// Action information extracted from a DDL statement. This proto is used to
diff --git a/proto-google-cloud-spanner-admin-instance-v1/pom.xml b/proto-google-cloud-spanner-admin-instance-v1/pom.xml
index d81fbe63350..5853021dd4b 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/pom.xml
+++ b/proto-google-cloud-spanner-admin-instance-v1/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
proto-google-cloud-spanner-admin-instance-v1
- 6.92.1-SNAPSHOT
+ 6.96.1
proto-google-cloud-spanner-admin-instance-v1
PROTO library for proto-google-cloud-spanner-admin-instance-v1
com.google.cloud
google-cloud-spanner-parent
- 6.92.1-SNAPSHOT
+ 6.96.1
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/AutoscalingConfig.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/AutoscalingConfig.java
index b51244f4769..f7ef3d62bea 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/AutoscalingConfig.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/AutoscalingConfig.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/AutoscalingConfigOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/AutoscalingConfigOrBuilder.java
index 45044b6327d..6a30c6358bf 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/AutoscalingConfigOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/AutoscalingConfigOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface AutoscalingConfigOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CommonProto.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CommonProto.java
index 4da48a791f9..b37c43d36c3 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CommonProto.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CommonProto.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/common.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public final class CommonProto {
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceConfigMetadata.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceConfigMetadata.java
index 82c7267e230..7ba1fb709d1 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceConfigMetadata.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceConfigMetadata.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceConfigMetadataOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceConfigMetadataOrBuilder.java
index e517ff79f9c..00ffeb7f969 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceConfigMetadataOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceConfigMetadataOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface CreateInstanceConfigMetadataOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceConfigRequest.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceConfigRequest.java
index 5bfad4d9065..8f30d13fd2a 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceConfigRequest.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceConfigRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceConfigRequestOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceConfigRequestOrBuilder.java
index a1488d78aa6..b5ce540a4a9 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceConfigRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceConfigRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface CreateInstanceConfigRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceMetadata.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceMetadata.java
index 917033b290f..ffaf70cef5e 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceMetadata.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceMetadata.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceMetadataOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceMetadataOrBuilder.java
index 05931135fc4..018bf7119fc 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceMetadataOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceMetadataOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface CreateInstanceMetadataOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstancePartitionMetadata.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstancePartitionMetadata.java
index 4887973e8d9..17964f091ec 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstancePartitionMetadata.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstancePartitionMetadata.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstancePartitionMetadataOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstancePartitionMetadataOrBuilder.java
index 96f1f9d7796..619a8c29b63 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstancePartitionMetadataOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstancePartitionMetadataOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface CreateInstancePartitionMetadataOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstancePartitionRequest.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstancePartitionRequest.java
index b960bd21d12..7ab20d48dec 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstancePartitionRequest.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstancePartitionRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstancePartitionRequestOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstancePartitionRequestOrBuilder.java
index 3add3c9a394..1d9205590cc 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstancePartitionRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstancePartitionRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface CreateInstancePartitionRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceRequest.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceRequest.java
index 3ed32b1918f..d51298b695e 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceRequest.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceRequestOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceRequestOrBuilder.java
index eeb539336c1..d231faaa988 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/CreateInstanceRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface CreateInstanceRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/DeleteInstanceConfigRequest.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/DeleteInstanceConfigRequest.java
index fbdf510d140..656302f146c 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/DeleteInstanceConfigRequest.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/DeleteInstanceConfigRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/DeleteInstanceConfigRequestOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/DeleteInstanceConfigRequestOrBuilder.java
index 498ec258d4d..b0a4a3cd749 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/DeleteInstanceConfigRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/DeleteInstanceConfigRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface DeleteInstanceConfigRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/DeleteInstancePartitionRequest.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/DeleteInstancePartitionRequest.java
index e70abad4f49..d7813946bb0 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/DeleteInstancePartitionRequest.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/DeleteInstancePartitionRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/DeleteInstancePartitionRequestOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/DeleteInstancePartitionRequestOrBuilder.java
index d1045700931..a216d5c1f4e 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/DeleteInstancePartitionRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/DeleteInstancePartitionRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface DeleteInstancePartitionRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/DeleteInstanceRequest.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/DeleteInstanceRequest.java
index 35366b1cbac..93cc31038f2 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/DeleteInstanceRequest.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/DeleteInstanceRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/DeleteInstanceRequestOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/DeleteInstanceRequestOrBuilder.java
index 3757791c240..6e1691b101f 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/DeleteInstanceRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/DeleteInstanceRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface DeleteInstanceRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/FreeInstanceMetadata.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/FreeInstanceMetadata.java
index 5442ae2b73f..9560dd4e4bc 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/FreeInstanceMetadata.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/FreeInstanceMetadata.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/FreeInstanceMetadataOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/FreeInstanceMetadataOrBuilder.java
index 9236723ee3d..a52cc05ff84 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/FreeInstanceMetadataOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/FreeInstanceMetadataOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface FreeInstanceMetadataOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/FulfillmentPeriod.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/FulfillmentPeriod.java
index e31785472dc..12de15eff75 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/FulfillmentPeriod.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/FulfillmentPeriod.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/common.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/GetInstanceConfigRequest.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/GetInstanceConfigRequest.java
index 8e99997e4bd..b540913b58c 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/GetInstanceConfigRequest.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/GetInstanceConfigRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/GetInstanceConfigRequestOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/GetInstanceConfigRequestOrBuilder.java
index 043c32fb614..fc95160a7f4 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/GetInstanceConfigRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/GetInstanceConfigRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface GetInstanceConfigRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/GetInstancePartitionRequest.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/GetInstancePartitionRequest.java
index 27e97ac8e85..e0fb7e69a98 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/GetInstancePartitionRequest.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/GetInstancePartitionRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/GetInstancePartitionRequestOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/GetInstancePartitionRequestOrBuilder.java
index 1d0f7b641c0..f6e7063954e 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/GetInstancePartitionRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/GetInstancePartitionRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface GetInstancePartitionRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/GetInstanceRequest.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/GetInstanceRequest.java
index f213cfbc271..6958b721964 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/GetInstanceRequest.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/GetInstanceRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/GetInstanceRequestOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/GetInstanceRequestOrBuilder.java
index 9f89d734841..5b8ea62749a 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/GetInstanceRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/GetInstanceRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface GetInstanceRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/Instance.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/Instance.java
index fe2c0c2c7e9..eaaea0c2edf 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/Instance.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/Instance.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstanceConfig.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstanceConfig.java
index a5425733681..0fb7cc5a728 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstanceConfig.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstanceConfig.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstanceConfigOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstanceConfigOrBuilder.java
index d9c5dd13c25..ec156f976d3 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstanceConfigOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstanceConfigOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface InstanceConfigOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstanceOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstanceOrBuilder.java
index 9adc1dc14eb..b25a9e682be 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstanceOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstanceOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface InstanceOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstancePartition.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstancePartition.java
index cc2ffd390c3..a857174da9f 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstancePartition.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstancePartition.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstancePartitionOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstancePartitionOrBuilder.java
index 711e70231c1..dbd05fab726 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstancePartitionOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/InstancePartitionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface InstancePartitionOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigOperationsRequest.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigOperationsRequest.java
index 185b2f1b5c7..ec88a60681f 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigOperationsRequest.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigOperationsRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigOperationsRequestOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigOperationsRequestOrBuilder.java
index 89ce6ff1389..91a387925e7 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigOperationsRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigOperationsRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface ListInstanceConfigOperationsRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigOperationsResponse.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigOperationsResponse.java
index a11bf16a291..ce1811b23ac 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigOperationsResponse.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigOperationsResponse.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigOperationsResponseOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigOperationsResponseOrBuilder.java
index 83bb7222623..f4a1d483491 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigOperationsResponseOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigOperationsResponseOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface ListInstanceConfigOperationsResponseOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigsRequest.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigsRequest.java
index ce477204130..df5046bf3c6 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigsRequest.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigsRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigsRequestOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigsRequestOrBuilder.java
index 0547d73b7c9..adae114c2da 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigsRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigsRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface ListInstanceConfigsRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigsResponse.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigsResponse.java
index 581d4c07c5c..37193468f1e 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigsResponse.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigsResponse.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigsResponseOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigsResponseOrBuilder.java
index 167c35748bb..698ab90b1a3 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigsResponseOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstanceConfigsResponseOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface ListInstanceConfigsResponseOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancePartitionOperationsRequest.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancePartitionOperationsRequest.java
index c9066c5c524..af8e9f489f2 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancePartitionOperationsRequest.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancePartitionOperationsRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancePartitionOperationsRequestOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancePartitionOperationsRequestOrBuilder.java
index 3121cf683d2..4d5dc5dcbc0 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancePartitionOperationsRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancePartitionOperationsRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface ListInstancePartitionOperationsRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancePartitionOperationsResponse.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancePartitionOperationsResponse.java
index df4b117555a..06c332ccaac 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancePartitionOperationsResponse.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancePartitionOperationsResponse.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancePartitionOperationsResponseOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancePartitionOperationsResponseOrBuilder.java
index 70b22473173..e1b3c36fe91 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancePartitionOperationsResponseOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancePartitionOperationsResponseOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface ListInstancePartitionOperationsResponseOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancePartitionsRequest.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancePartitionsRequest.java
index 10baca1825e..4816ca2bcb3 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancePartitionsRequest.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancePartitionsRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancePartitionsRequestOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancePartitionsRequestOrBuilder.java
index 5adc3e52b25..3a67d56f8d0 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancePartitionsRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancePartitionsRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface ListInstancePartitionsRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancePartitionsResponse.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancePartitionsResponse.java
index cfb1fa50f1b..5756bd291db 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancePartitionsResponse.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancePartitionsResponse.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancePartitionsResponseOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancePartitionsResponseOrBuilder.java
index 74da44944c7..d1b5ac59ff6 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancePartitionsResponseOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancePartitionsResponseOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface ListInstancePartitionsResponseOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancesRequest.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancesRequest.java
index 8ce1e0347a0..9bf2f97a9a1 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancesRequest.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancesRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancesRequestOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancesRequestOrBuilder.java
index 2a9167ae56e..dee5ffd641b 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancesRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancesRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface ListInstancesRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancesResponse.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancesResponse.java
index 3a4e1e2f79a..c5d6f72dacd 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancesResponse.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancesResponse.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancesResponseOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancesResponseOrBuilder.java
index 8f86e551b22..852d176a021 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancesResponseOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ListInstancesResponseOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface ListInstancesResponseOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/MoveInstanceMetadata.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/MoveInstanceMetadata.java
index 11323d4f5c9..ee91bf1dab4 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/MoveInstanceMetadata.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/MoveInstanceMetadata.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/MoveInstanceMetadataOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/MoveInstanceMetadataOrBuilder.java
index de717450414..46fe6784f2f 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/MoveInstanceMetadataOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/MoveInstanceMetadataOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface MoveInstanceMetadataOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/MoveInstanceRequest.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/MoveInstanceRequest.java
index e03cd12c5e1..8f5ad280202 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/MoveInstanceRequest.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/MoveInstanceRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/MoveInstanceRequestOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/MoveInstanceRequestOrBuilder.java
index 301f5d4dbf3..3be9e40e5da 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/MoveInstanceRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/MoveInstanceRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface MoveInstanceRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/MoveInstanceResponse.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/MoveInstanceResponse.java
index 2d7830868da..cf398f3d4d5 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/MoveInstanceResponse.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/MoveInstanceResponse.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/MoveInstanceResponseOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/MoveInstanceResponseOrBuilder.java
index bc7c09b6069..42305be5f15 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/MoveInstanceResponseOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/MoveInstanceResponseOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface MoveInstanceResponseOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/OperationProgress.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/OperationProgress.java
index 3512be2f36d..1e152b89e75 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/OperationProgress.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/OperationProgress.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/common.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/OperationProgressOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/OperationProgressOrBuilder.java
index 057a8b9ce8d..67d3ef88ca1 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/OperationProgressOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/OperationProgressOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/common.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface OperationProgressOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ReplicaComputeCapacity.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ReplicaComputeCapacity.java
index 2cdc03ab0de..e4f62076b06 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ReplicaComputeCapacity.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ReplicaComputeCapacity.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ReplicaComputeCapacityOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ReplicaComputeCapacityOrBuilder.java
index 63b403f90cb..6f35b5444d0 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ReplicaComputeCapacityOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ReplicaComputeCapacityOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface ReplicaComputeCapacityOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ReplicaInfo.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ReplicaInfo.java
index 336eba64374..e0051917235 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ReplicaInfo.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ReplicaInfo.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/** Protobuf type {@code google.spanner.admin.instance.v1.ReplicaInfo} */
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ReplicaInfoOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ReplicaInfoOrBuilder.java
index bd6bbc2bbda..9e35d2fa605 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ReplicaInfoOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ReplicaInfoOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface ReplicaInfoOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ReplicaSelection.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ReplicaSelection.java
index 565db8158e9..85e23446987 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ReplicaSelection.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ReplicaSelection.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/common.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ReplicaSelectionOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ReplicaSelectionOrBuilder.java
index c239e112a6f..d0320fe79a1 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ReplicaSelectionOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/ReplicaSelectionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/common.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface ReplicaSelectionOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/SpannerInstanceAdminProto.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/SpannerInstanceAdminProto.java
index 819e313ee32..3b520157582 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/SpannerInstanceAdminProto.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/SpannerInstanceAdminProto.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public final class SpannerInstanceAdminProto {
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceConfigMetadata.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceConfigMetadata.java
index 11a80eaba9a..f45b7f98d4c 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceConfigMetadata.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceConfigMetadata.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceConfigMetadataOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceConfigMetadataOrBuilder.java
index 8d5fa943b3d..5aa7c91870d 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceConfigMetadataOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceConfigMetadataOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface UpdateInstanceConfigMetadataOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceConfigRequest.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceConfigRequest.java
index c9387b2bd9b..d6318ff2188 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceConfigRequest.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceConfigRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceConfigRequestOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceConfigRequestOrBuilder.java
index 747962c562e..bc4ab730408 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceConfigRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceConfigRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface UpdateInstanceConfigRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceMetadata.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceMetadata.java
index 3fc7af7050e..03ad3324ab7 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceMetadata.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceMetadata.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceMetadataOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceMetadataOrBuilder.java
index 4ed5296d71d..110734a0b0e 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceMetadataOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceMetadataOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface UpdateInstanceMetadataOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstancePartitionMetadata.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstancePartitionMetadata.java
index f691a6a71f9..f2ad76154b3 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstancePartitionMetadata.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstancePartitionMetadata.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstancePartitionMetadataOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstancePartitionMetadataOrBuilder.java
index 18ff14db9c2..07cfbfa1ded 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstancePartitionMetadataOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstancePartitionMetadataOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface UpdateInstancePartitionMetadataOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstancePartitionRequest.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstancePartitionRequest.java
index 942d48a4dfe..b0fec5ca01c 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstancePartitionRequest.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstancePartitionRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstancePartitionRequestOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstancePartitionRequestOrBuilder.java
index 33be10701e8..c48f9a293f6 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstancePartitionRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstancePartitionRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface UpdateInstancePartitionRequestOrBuilder
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceRequest.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceRequest.java
index 1b53bc59fc8..fa512344c0e 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceRequest.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
/**
diff --git a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceRequestOrBuilder.java b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceRequestOrBuilder.java
index bb55f23b55c..8e0f62e01ee 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-admin-instance-v1/src/main/java/com/google/spanner/admin/instance/v1/UpdateInstanceRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/admin/instance/v1/spanner_instance_admin.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.admin.instance.v1;
public interface UpdateInstanceRequestOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/pom.xml b/proto-google-cloud-spanner-executor-v1/pom.xml
index 701c635e3ef..b5b75aced4a 100644
--- a/proto-google-cloud-spanner-executor-v1/pom.xml
+++ b/proto-google-cloud-spanner-executor-v1/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
proto-google-cloud-spanner-executor-v1
- 6.92.1-SNAPSHOT
+ 6.96.1
proto-google-cloud-spanner-executor-v1
Proto library for google-cloud-spanner
com.google.cloud
google-cloud-spanner-parent
- 6.92.1-SNAPSHOT
+ 6.96.1
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/AdminAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/AdminAction.java
index c0c4d24acd1..70b15ba5b05 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/AdminAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/AdminAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/AdminActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/AdminActionOrBuilder.java
index 050c1a03702..a6275a32ccb 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/AdminActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/AdminActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface AdminActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/AdminResult.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/AdminResult.java
index 1fa75ee199d..372e2183196 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/AdminResult.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/AdminResult.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/AdminResultOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/AdminResultOrBuilder.java
index a0d21eaefa7..265c281020e 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/AdminResultOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/AdminResultOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface AdminResultOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/BatchDmlAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/BatchDmlAction.java
index 6f8ce1a2372..d75516554b2 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/BatchDmlAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/BatchDmlAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/BatchDmlActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/BatchDmlActionOrBuilder.java
index 533e1486f80..857f300a5ae 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/BatchDmlActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/BatchDmlActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface BatchDmlActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/BatchPartition.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/BatchPartition.java
index 562a99f47d1..6b0d15358bd 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/BatchPartition.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/BatchPartition.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/BatchPartitionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/BatchPartitionOrBuilder.java
index c3f87ebbc98..f288fc4f94f 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/BatchPartitionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/BatchPartitionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface BatchPartitionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CancelOperationAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CancelOperationAction.java
index c2fb727d0d8..404901f3403 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CancelOperationAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CancelOperationAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CancelOperationActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CancelOperationActionOrBuilder.java
index 36f0520b74f..995f8404738 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CancelOperationActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CancelOperationActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface CancelOperationActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ChangeQuorumCloudDatabaseAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ChangeQuorumCloudDatabaseAction.java
index 1f859b10069..8705ac750bf 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ChangeQuorumCloudDatabaseAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ChangeQuorumCloudDatabaseAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ChangeQuorumCloudDatabaseActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ChangeQuorumCloudDatabaseActionOrBuilder.java
index 3e637ad2b59..c35b3e9f4d5 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ChangeQuorumCloudDatabaseActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ChangeQuorumCloudDatabaseActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface ChangeQuorumCloudDatabaseActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ChangeStreamRecord.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ChangeStreamRecord.java
index a476b1fa2f3..d5217e28584 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ChangeStreamRecord.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ChangeStreamRecord.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ChangeStreamRecordOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ChangeStreamRecordOrBuilder.java
index 7075d45b37e..9ba18c4b90a 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ChangeStreamRecordOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ChangeStreamRecordOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface ChangeStreamRecordOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ChildPartitionsRecord.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ChildPartitionsRecord.java
index 0cbc595a455..72ace8d2693 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ChildPartitionsRecord.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ChildPartitionsRecord.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ChildPartitionsRecordOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ChildPartitionsRecordOrBuilder.java
index 12e02afa5b0..6652fb905fb 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ChildPartitionsRecordOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ChildPartitionsRecordOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface ChildPartitionsRecordOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloseBatchTransactionAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloseBatchTransactionAction.java
index 0ac5e839c92..07b704f3c34 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloseBatchTransactionAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloseBatchTransactionAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloseBatchTransactionActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloseBatchTransactionActionOrBuilder.java
index 4d2580be9c3..98e1e5c83a1 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloseBatchTransactionActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloseBatchTransactionActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface CloseBatchTransactionActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudBackupResponse.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudBackupResponse.java
index 958966dba61..231127db99c 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudBackupResponse.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudBackupResponse.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudBackupResponseOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudBackupResponseOrBuilder.java
index f523267e4a6..44496a59a39 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudBackupResponseOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudBackupResponseOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface CloudBackupResponseOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudDatabaseResponse.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudDatabaseResponse.java
index ed55864dce2..b3ccef4d219 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudDatabaseResponse.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudDatabaseResponse.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudDatabaseResponseOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudDatabaseResponseOrBuilder.java
index 754a00cfbf6..5f7f9167e2f 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudDatabaseResponseOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudDatabaseResponseOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface CloudDatabaseResponseOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudExecutorProto.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudExecutorProto.java
index 48baeb187ae..4ba86717ec9 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudExecutorProto.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudExecutorProto.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public final class CloudExecutorProto {
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudInstanceConfigResponse.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudInstanceConfigResponse.java
index 9d91bb5853e..abb273adcab 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudInstanceConfigResponse.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudInstanceConfigResponse.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudInstanceConfigResponseOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudInstanceConfigResponseOrBuilder.java
index cfc0ac47c94..480225e8156 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudInstanceConfigResponseOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudInstanceConfigResponseOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface CloudInstanceConfigResponseOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudInstanceResponse.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudInstanceResponse.java
index 95dd67c2556..68913513ab1 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudInstanceResponse.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudInstanceResponse.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudInstanceResponseOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudInstanceResponseOrBuilder.java
index d52170a7bfc..5e9290f1b57 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudInstanceResponseOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CloudInstanceResponseOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface CloudInstanceResponseOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ColumnMetadata.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ColumnMetadata.java
index 8540c3c0a17..96035abfcf7 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ColumnMetadata.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ColumnMetadata.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ColumnMetadataOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ColumnMetadataOrBuilder.java
index 0614d74d997..671196dd4b4 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ColumnMetadataOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ColumnMetadataOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface ColumnMetadataOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/Concurrency.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/Concurrency.java
index 48f32c59785..39baf4fdefb 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/Concurrency.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/Concurrency.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ConcurrencyOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ConcurrencyOrBuilder.java
index 3e0e6871301..c7cda46370a 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ConcurrencyOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ConcurrencyOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface ConcurrencyOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CopyCloudBackupAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CopyCloudBackupAction.java
index c22383926cf..2af96fbda5e 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CopyCloudBackupAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CopyCloudBackupAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CopyCloudBackupActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CopyCloudBackupActionOrBuilder.java
index 7b010dad47c..bc5edb17136 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CopyCloudBackupActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CopyCloudBackupActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface CopyCloudBackupActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CreateCloudBackupAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CreateCloudBackupAction.java
index c14b0f19a4b..e9e6c3ccad7 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CreateCloudBackupAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CreateCloudBackupAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CreateCloudBackupActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CreateCloudBackupActionOrBuilder.java
index 02f418f8107..24fe91eb710 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CreateCloudBackupActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CreateCloudBackupActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface CreateCloudBackupActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CreateCloudDatabaseAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CreateCloudDatabaseAction.java
index df106f62909..c752f7e053b 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CreateCloudDatabaseAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CreateCloudDatabaseAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CreateCloudDatabaseActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CreateCloudDatabaseActionOrBuilder.java
index 10f32fecdb1..140a1dbb555 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CreateCloudDatabaseActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CreateCloudDatabaseActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface CreateCloudDatabaseActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CreateCloudInstanceAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CreateCloudInstanceAction.java
index 16dca0079f1..3612abbe1b2 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CreateCloudInstanceAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CreateCloudInstanceAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CreateCloudInstanceActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CreateCloudInstanceActionOrBuilder.java
index b5faa3960bc..e06922e8f0c 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CreateCloudInstanceActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CreateCloudInstanceActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface CreateCloudInstanceActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CreateUserInstanceConfigAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CreateUserInstanceConfigAction.java
index fb5421ace0f..5d938161787 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CreateUserInstanceConfigAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CreateUserInstanceConfigAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CreateUserInstanceConfigActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CreateUserInstanceConfigActionOrBuilder.java
index 8c6471567a4..242a1e91ca5 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CreateUserInstanceConfigActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/CreateUserInstanceConfigActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface CreateUserInstanceConfigActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DataChangeRecord.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DataChangeRecord.java
index c8bc8d0f94b..487bab681c0 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DataChangeRecord.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DataChangeRecord.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DataChangeRecordOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DataChangeRecordOrBuilder.java
index 1c3196071bb..d1d7ff40a0d 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DataChangeRecordOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DataChangeRecordOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface DataChangeRecordOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DeleteCloudBackupAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DeleteCloudBackupAction.java
index 130c9174ca3..c90b3dabb56 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DeleteCloudBackupAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DeleteCloudBackupAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DeleteCloudBackupActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DeleteCloudBackupActionOrBuilder.java
index edf8e1edf81..a00d015c9f5 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DeleteCloudBackupActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DeleteCloudBackupActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface DeleteCloudBackupActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DeleteCloudInstanceAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DeleteCloudInstanceAction.java
index f8d4293bf0f..418c2e21aca 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DeleteCloudInstanceAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DeleteCloudInstanceAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DeleteCloudInstanceActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DeleteCloudInstanceActionOrBuilder.java
index 0045a74d556..9891c64eb93 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DeleteCloudInstanceActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DeleteCloudInstanceActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface DeleteCloudInstanceActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DeleteUserInstanceConfigAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DeleteUserInstanceConfigAction.java
index 202bd828805..fcf9b626729 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DeleteUserInstanceConfigAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DeleteUserInstanceConfigAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DeleteUserInstanceConfigActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DeleteUserInstanceConfigActionOrBuilder.java
index 65c23187397..488dfdf372e 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DeleteUserInstanceConfigActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DeleteUserInstanceConfigActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface DeleteUserInstanceConfigActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DmlAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DmlAction.java
index 256089e5ead..588432d6ff3 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DmlAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DmlAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DmlActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DmlActionOrBuilder.java
index 9cff7cca3be..b7a5ebfd67f 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DmlActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DmlActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface DmlActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DropCloudDatabaseAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DropCloudDatabaseAction.java
index d40528106be..966185694ce 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DropCloudDatabaseAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DropCloudDatabaseAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DropCloudDatabaseActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DropCloudDatabaseActionOrBuilder.java
index 965d0577196..41bc4146276 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DropCloudDatabaseActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/DropCloudDatabaseActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface DropCloudDatabaseActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ExecuteChangeStreamQuery.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ExecuteChangeStreamQuery.java
index f2a7b184979..f53cfc728c1 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ExecuteChangeStreamQuery.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ExecuteChangeStreamQuery.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ExecuteChangeStreamQueryOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ExecuteChangeStreamQueryOrBuilder.java
index 0ce094ea759..ac70abde36d 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ExecuteChangeStreamQueryOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ExecuteChangeStreamQueryOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface ExecuteChangeStreamQueryOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ExecutePartitionAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ExecutePartitionAction.java
index 9e75f55c8cc..972799a9267 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ExecutePartitionAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ExecutePartitionAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ExecutePartitionActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ExecutePartitionActionOrBuilder.java
index 90874e17a3d..e5cddd9f86b 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ExecutePartitionActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ExecutePartitionActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface ExecutePartitionActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/FinishTransactionAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/FinishTransactionAction.java
index b121d3dacc6..8871d325e8a 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/FinishTransactionAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/FinishTransactionAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/FinishTransactionActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/FinishTransactionActionOrBuilder.java
index f8d51847e92..2211a63e1de 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/FinishTransactionActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/FinishTransactionActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface FinishTransactionActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GenerateDbPartitionsForQueryAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GenerateDbPartitionsForQueryAction.java
index 601353bca40..2b39b3dca4b 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GenerateDbPartitionsForQueryAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GenerateDbPartitionsForQueryAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GenerateDbPartitionsForQueryActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GenerateDbPartitionsForQueryActionOrBuilder.java
index ebf6048f122..8cf654e3936 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GenerateDbPartitionsForQueryActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GenerateDbPartitionsForQueryActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface GenerateDbPartitionsForQueryActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GenerateDbPartitionsForReadAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GenerateDbPartitionsForReadAction.java
index a511eba3958..c245448745a 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GenerateDbPartitionsForReadAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GenerateDbPartitionsForReadAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GenerateDbPartitionsForReadActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GenerateDbPartitionsForReadActionOrBuilder.java
index aa0e8c91253..7926a47a12a 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GenerateDbPartitionsForReadActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GenerateDbPartitionsForReadActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface GenerateDbPartitionsForReadActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetCloudBackupAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetCloudBackupAction.java
index 076ab4fa1ed..4472731f50a 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetCloudBackupAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetCloudBackupAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetCloudBackupActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetCloudBackupActionOrBuilder.java
index ea5eb4dcefc..825230d52af 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetCloudBackupActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetCloudBackupActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface GetCloudBackupActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetCloudDatabaseAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetCloudDatabaseAction.java
index 7ab632b848a..97c98098824 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetCloudDatabaseAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetCloudDatabaseAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetCloudDatabaseActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetCloudDatabaseActionOrBuilder.java
index 710b4ef399e..3e7f3e1e41b 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetCloudDatabaseActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetCloudDatabaseActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface GetCloudDatabaseActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetCloudInstanceAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetCloudInstanceAction.java
index dfd8bff0fad..032ffa1a2db 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetCloudInstanceAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetCloudInstanceAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetCloudInstanceActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetCloudInstanceActionOrBuilder.java
index dad44951a9d..d96e778a18b 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetCloudInstanceActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetCloudInstanceActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface GetCloudInstanceActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetCloudInstanceConfigAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetCloudInstanceConfigAction.java
index 832aa9a781c..39f9e535e2f 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetCloudInstanceConfigAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetCloudInstanceConfigAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetCloudInstanceConfigActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetCloudInstanceConfigActionOrBuilder.java
index 3188cbf0d58..40c708917cc 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetCloudInstanceConfigActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetCloudInstanceConfigActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface GetCloudInstanceConfigActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetOperationAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetOperationAction.java
index 74a3dcf6798..d75958b690c 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetOperationAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetOperationAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetOperationActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetOperationActionOrBuilder.java
index 06b4eb0842f..4cb0884fa84 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetOperationActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/GetOperationActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface GetOperationActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/HeartbeatRecord.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/HeartbeatRecord.java
index a39f1ae0732..48dfa25975f 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/HeartbeatRecord.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/HeartbeatRecord.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/HeartbeatRecordOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/HeartbeatRecordOrBuilder.java
index 2c0cb405189..ecf807750d2 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/HeartbeatRecordOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/HeartbeatRecordOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface HeartbeatRecordOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/KeyRange.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/KeyRange.java
index ad808660c53..100e9f61134 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/KeyRange.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/KeyRange.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/KeyRangeOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/KeyRangeOrBuilder.java
index 68bbf15ef44..146e86506a0 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/KeyRangeOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/KeyRangeOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface KeyRangeOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/KeySet.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/KeySet.java
index 735be798411..d7fb7501ba5 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/KeySet.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/KeySet.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/KeySetOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/KeySetOrBuilder.java
index 5e1b0209eb1..606efab3fc8 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/KeySetOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/KeySetOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface KeySetOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudBackupOperationsAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudBackupOperationsAction.java
index f925b31a320..9db292983e4 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudBackupOperationsAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudBackupOperationsAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudBackupOperationsActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudBackupOperationsActionOrBuilder.java
index 1bf9ea1b10c..ebc2d7f48a4 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudBackupOperationsActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudBackupOperationsActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface ListCloudBackupOperationsActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudBackupsAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudBackupsAction.java
index 0ec584d487d..c390c5f1f81 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudBackupsAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudBackupsAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudBackupsActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudBackupsActionOrBuilder.java
index 328f47c6dc4..8c474b05e3d 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudBackupsActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudBackupsActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface ListCloudBackupsActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudDatabaseOperationsAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudDatabaseOperationsAction.java
index f1dbb4953c2..8b78eb77866 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudDatabaseOperationsAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudDatabaseOperationsAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudDatabaseOperationsActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudDatabaseOperationsActionOrBuilder.java
index cfcb7920aa0..da6d64705ac 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudDatabaseOperationsActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudDatabaseOperationsActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface ListCloudDatabaseOperationsActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudDatabasesAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudDatabasesAction.java
index a764fbdf057..fa8d5b23f5e 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudDatabasesAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudDatabasesAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudDatabasesActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudDatabasesActionOrBuilder.java
index 4045e945dcc..2822b743a8d 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudDatabasesActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudDatabasesActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface ListCloudDatabasesActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudInstanceConfigsAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudInstanceConfigsAction.java
index 23fc2f4f399..8aaf4bdb788 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudInstanceConfigsAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudInstanceConfigsAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudInstanceConfigsActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudInstanceConfigsActionOrBuilder.java
index 013035a6b88..999637a43fa 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudInstanceConfigsActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudInstanceConfigsActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface ListCloudInstanceConfigsActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudInstancesAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudInstancesAction.java
index 7c720886794..c26e682bf71 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudInstancesAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudInstancesAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudInstancesActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudInstancesActionOrBuilder.java
index 3e5fa36fc57..f16c93ec6d7 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudInstancesActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ListCloudInstancesActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface ListCloudInstancesActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/MutationAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/MutationAction.java
index e19b44a8dd7..36ac9dc1563 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/MutationAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/MutationAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/MutationActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/MutationActionOrBuilder.java
index 02ab940e079..5700c3a2812 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/MutationActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/MutationActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface MutationActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/OperationResponse.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/OperationResponse.java
index 7b0216f8760..1f6a2b03988 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/OperationResponse.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/OperationResponse.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/OperationResponseOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/OperationResponseOrBuilder.java
index 33884ce0087..209ede1f53b 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/OperationResponseOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/OperationResponseOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface OperationResponseOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/PartitionedUpdateAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/PartitionedUpdateAction.java
index a5ac45f5096..eb41323041f 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/PartitionedUpdateAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/PartitionedUpdateAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/PartitionedUpdateActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/PartitionedUpdateActionOrBuilder.java
index 60595858cd6..dba9e84c6b0 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/PartitionedUpdateActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/PartitionedUpdateActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface PartitionedUpdateActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/QueryAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/QueryAction.java
index 0b1fe010f95..bf1183f6c37 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/QueryAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/QueryAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/QueryActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/QueryActionOrBuilder.java
index 381ec54d832..ed7de173c07 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/QueryActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/QueryActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface QueryActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/QueryCancellationAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/QueryCancellationAction.java
index 5fcca8a450b..d1fd4b5f116 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/QueryCancellationAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/QueryCancellationAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/QueryCancellationActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/QueryCancellationActionOrBuilder.java
index 381173e5e22..785008751a9 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/QueryCancellationActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/QueryCancellationActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface QueryCancellationActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/QueryResult.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/QueryResult.java
index d22b3e0cdf0..94944dec3fe 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/QueryResult.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/QueryResult.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/QueryResultOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/QueryResultOrBuilder.java
index 4fe00cf1e22..7d1a2da8c06 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/QueryResultOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/QueryResultOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface QueryResultOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ReadAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ReadAction.java
index 7bb8be487ab..16eb9b93ebc 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ReadAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ReadAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ReadActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ReadActionOrBuilder.java
index 5607cda43e3..fcb44b1288c 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ReadActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ReadActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface ReadActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ReadResult.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ReadResult.java
index bc120684b30..199cd8cd3a4 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ReadResult.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ReadResult.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ReadResultOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ReadResultOrBuilder.java
index eb59b58552e..ef1797108a7 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ReadResultOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ReadResultOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface ReadResultOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/RestoreCloudDatabaseAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/RestoreCloudDatabaseAction.java
index 25bb3382336..d544ac5a165 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/RestoreCloudDatabaseAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/RestoreCloudDatabaseAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/RestoreCloudDatabaseActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/RestoreCloudDatabaseActionOrBuilder.java
index dd342d929f9..371b9bf0f44 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/RestoreCloudDatabaseActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/RestoreCloudDatabaseActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface RestoreCloudDatabaseActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SessionPoolOptions.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SessionPoolOptions.java
index 9e996979e63..9da651cbf05 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SessionPoolOptions.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SessionPoolOptions.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SessionPoolOptionsOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SessionPoolOptionsOrBuilder.java
index 2d17dc6320b..c9aa6d7835a 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SessionPoolOptionsOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SessionPoolOptionsOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface SessionPoolOptionsOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerAction.java
index 233b4568e73..60103dcc1a3 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerActionOrBuilder.java
index 0e10a34ee0a..e7f8192fdfb 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface SpannerActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerActionOutcome.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerActionOutcome.java
index 12e16254818..b84f0a15f83 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerActionOutcome.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerActionOutcome.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerActionOutcomeOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerActionOutcomeOrBuilder.java
index f8164aa9c67..471f68c4acb 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerActionOutcomeOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerActionOutcomeOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface SpannerActionOutcomeOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerAsyncActionRequest.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerAsyncActionRequest.java
index ddd58ab9183..3fe8fb79320 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerAsyncActionRequest.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerAsyncActionRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerAsyncActionRequestOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerAsyncActionRequestOrBuilder.java
index 05248fce783..8fde05423de 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerAsyncActionRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerAsyncActionRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface SpannerAsyncActionRequestOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerAsyncActionResponse.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerAsyncActionResponse.java
index f6fcca767ab..7b9cd2a7911 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerAsyncActionResponse.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerAsyncActionResponse.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerAsyncActionResponseOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerAsyncActionResponseOrBuilder.java
index 5bf0b8db493..16863379b57 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerAsyncActionResponseOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerAsyncActionResponseOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface SpannerAsyncActionResponseOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerOptions.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerOptions.java
index e0a4d145e73..e1e17854f6b 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerOptions.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerOptions.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerOptionsOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerOptionsOrBuilder.java
index 5c6be244eb7..a7a57c31081 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerOptionsOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/SpannerOptionsOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface SpannerOptionsOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/StartBatchTransactionAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/StartBatchTransactionAction.java
index 0961456548c..785f2aaa733 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/StartBatchTransactionAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/StartBatchTransactionAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/StartBatchTransactionActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/StartBatchTransactionActionOrBuilder.java
index beada699cbc..2cacfb4a951 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/StartBatchTransactionActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/StartBatchTransactionActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface StartBatchTransactionActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/StartTransactionAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/StartTransactionAction.java
index 5889758becb..1659953e9d0 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/StartTransactionAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/StartTransactionAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/StartTransactionActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/StartTransactionActionOrBuilder.java
index 13a57e863da..a6c18a27aa5 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/StartTransactionActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/StartTransactionActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface StartTransactionActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/TableMetadata.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/TableMetadata.java
index eec81d575a7..cf3b5bab3c3 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/TableMetadata.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/TableMetadata.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/TableMetadataOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/TableMetadataOrBuilder.java
index 91e88d202ac..9e0da0c1e8c 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/TableMetadataOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/TableMetadataOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface TableMetadataOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/TransactionExecutionOptions.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/TransactionExecutionOptions.java
index 851ff6ff285..4c01f542cdd 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/TransactionExecutionOptions.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/TransactionExecutionOptions.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/TransactionExecutionOptionsOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/TransactionExecutionOptionsOrBuilder.java
index c7e8aaafd86..6d221f36997 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/TransactionExecutionOptionsOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/TransactionExecutionOptionsOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface TransactionExecutionOptionsOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateCloudBackupAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateCloudBackupAction.java
index c8679d773df..b804bf93ad0 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateCloudBackupAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateCloudBackupAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateCloudBackupActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateCloudBackupActionOrBuilder.java
index 10b4a15f35c..dd91915f465 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateCloudBackupActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateCloudBackupActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface UpdateCloudBackupActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateCloudDatabaseAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateCloudDatabaseAction.java
index ccb05fa8be1..eb4e757cf43 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateCloudDatabaseAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateCloudDatabaseAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateCloudDatabaseActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateCloudDatabaseActionOrBuilder.java
index dcbda949888..4698c38fdf9 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateCloudDatabaseActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateCloudDatabaseActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface UpdateCloudDatabaseActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateCloudDatabaseDdlAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateCloudDatabaseDdlAction.java
index 055196d292d..faae053aab0 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateCloudDatabaseDdlAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateCloudDatabaseDdlAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateCloudDatabaseDdlActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateCloudDatabaseDdlActionOrBuilder.java
index e9b417abc29..78cfa76b927 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateCloudDatabaseDdlActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateCloudDatabaseDdlActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface UpdateCloudDatabaseDdlActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateCloudInstanceAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateCloudInstanceAction.java
index 3b34df486ac..828cfeb3be7 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateCloudInstanceAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateCloudInstanceAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateCloudInstanceActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateCloudInstanceActionOrBuilder.java
index 78e3ee01ccf..22ed2b52ae9 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateCloudInstanceActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateCloudInstanceActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface UpdateCloudInstanceActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateUserInstanceConfigAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateUserInstanceConfigAction.java
index ab9be4801bb..dd0c1b4c409 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateUserInstanceConfigAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateUserInstanceConfigAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateUserInstanceConfigActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateUserInstanceConfigActionOrBuilder.java
index caa303b039e..722472ad4f6 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateUserInstanceConfigActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/UpdateUserInstanceConfigActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface UpdateUserInstanceConfigActionOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/Value.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/Value.java
index f0cb84393bd..c21e49fad51 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/Value.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/Value.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ValueList.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ValueList.java
index 7e39b856900..5cb290f8712 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ValueList.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ValueList.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ValueListOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ValueListOrBuilder.java
index 05a4bac44c9..f3221a0394e 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ValueListOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ValueListOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface ValueListOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ValueOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ValueOrBuilder.java
index b1a13279644..b72837278e1 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ValueOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/ValueOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface ValueOrBuilder
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/WriteMutationsAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/WriteMutationsAction.java
index c219ecead69..cb7caa62506 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/WriteMutationsAction.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/WriteMutationsAction.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
/**
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/WriteMutationsActionOrBuilder.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/WriteMutationsActionOrBuilder.java
index f259cef49bf..9d58c827f99 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/WriteMutationsActionOrBuilder.java
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/WriteMutationsActionOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/executor/v1/cloud_executor.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.executor.v1;
public interface WriteMutationsActionOrBuilder
diff --git a/proto-google-cloud-spanner-v1/pom.xml b/proto-google-cloud-spanner-v1/pom.xml
index 6bdd874682d..9bb62f5e36d 100644
--- a/proto-google-cloud-spanner-v1/pom.xml
+++ b/proto-google-cloud-spanner-v1/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
proto-google-cloud-spanner-v1
- 6.92.1-SNAPSHOT
+ 6.96.1
proto-google-cloud-spanner-v1
PROTO library for proto-google-cloud-spanner-v1
com.google.cloud
google-cloud-spanner-parent
- 6.92.1-SNAPSHOT
+ 6.96.1
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchCreateSessionsRequest.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchCreateSessionsRequest.java
index d8adf7aecbd..6a6c66a6b3a 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchCreateSessionsRequest.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchCreateSessionsRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/v1/spanner.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.v1;
/**
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchCreateSessionsRequestOrBuilder.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchCreateSessionsRequestOrBuilder.java
index 0461986bb0c..1b0588c32e2 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchCreateSessionsRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchCreateSessionsRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/v1/spanner.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.v1;
public interface BatchCreateSessionsRequestOrBuilder
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchCreateSessionsResponse.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchCreateSessionsResponse.java
index 5cc1a813102..431db1eaedf 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchCreateSessionsResponse.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchCreateSessionsResponse.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/v1/spanner.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.v1;
/**
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchCreateSessionsResponseOrBuilder.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchCreateSessionsResponseOrBuilder.java
index 5c0f138589f..947fcdad699 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchCreateSessionsResponseOrBuilder.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchCreateSessionsResponseOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/v1/spanner.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.v1;
public interface BatchCreateSessionsResponseOrBuilder
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchWriteRequest.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchWriteRequest.java
index 7d51f2e2177..82af100d346 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchWriteRequest.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchWriteRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/v1/spanner.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.v1;
/**
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchWriteRequestOrBuilder.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchWriteRequestOrBuilder.java
index 80cdbc25db3..2da32834318 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchWriteRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchWriteRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/v1/spanner.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.v1;
public interface BatchWriteRequestOrBuilder
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchWriteResponse.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchWriteResponse.java
index d7107fc2c2b..39105b6e63c 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchWriteResponse.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchWriteResponse.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/v1/spanner.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.v1;
/**
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchWriteResponseOrBuilder.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchWriteResponseOrBuilder.java
index 23f5612c3f4..f0ecaa70743 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchWriteResponseOrBuilder.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BatchWriteResponseOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/v1/spanner.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.v1;
public interface BatchWriteResponseOrBuilder
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BeginTransactionRequest.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BeginTransactionRequest.java
index 6557209a100..7fa457c8552 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BeginTransactionRequest.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BeginTransactionRequest.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/v1/spanner.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.v1;
/**
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BeginTransactionRequestOrBuilder.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BeginTransactionRequestOrBuilder.java
index bb92bff652a..c339d7cc25a 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BeginTransactionRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/BeginTransactionRequestOrBuilder.java
@@ -16,7 +16,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/spanner/v1/spanner.proto
-// Protobuf Java Version: 3.25.5
+// Protobuf Java Version: 3.25.8
package com.google.spanner.v1;
public interface BeginTransactionRequestOrBuilder
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ChangeStreamProto.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ChangeStreamProto.java
new file mode 100644
index 00000000000..651591b28bd
--- /dev/null
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ChangeStreamProto.java
@@ -0,0 +1,292 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/spanner/v1/change_stream.proto
+
+// Protobuf Java Version: 3.25.8
+package com.google.spanner.v1;
+
+public final class ChangeStreamProto {
+ private ChangeStreamProto() {}
+
+ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry) {}
+
+ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions((com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_spanner_v1_ChangeStreamRecord_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_spanner_v1_ChangeStreamRecord_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_ColumnMetadata_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_ColumnMetadata_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_ModValue_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_ModValue_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_Mod_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_Mod_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_spanner_v1_ChangeStreamRecord_HeartbeatRecord_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_spanner_v1_ChangeStreamRecord_HeartbeatRecord_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_spanner_v1_ChangeStreamRecord_PartitionStartRecord_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_spanner_v1_ChangeStreamRecord_PartitionStartRecord_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_spanner_v1_ChangeStreamRecord_PartitionEndRecord_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_spanner_v1_ChangeStreamRecord_PartitionEndRecord_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_spanner_v1_ChangeStreamRecord_PartitionEventRecord_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_spanner_v1_ChangeStreamRecord_PartitionEventRecord_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_spanner_v1_ChangeStreamRecord_PartitionEventRecord_MoveInEvent_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_spanner_v1_ChangeStreamRecord_PartitionEventRecord_MoveInEvent_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_spanner_v1_ChangeStreamRecord_PartitionEventRecord_MoveOutEvent_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_spanner_v1_ChangeStreamRecord_PartitionEventRecord_MoveOutEvent_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ return descriptor;
+ }
+
+ private static com.google.protobuf.Descriptors.FileDescriptor descriptor;
+
+ static {
+ java.lang.String[] descriptorData = {
+ "\n%google/spanner/v1/change_stream.proto\022"
+ + "\021google.spanner.v1\032\034google/protobuf/stru"
+ + "ct.proto\032\037google/protobuf/timestamp.prot"
+ + "o\032\034google/spanner/v1/type.proto\"\226\024\n\022Chan"
+ + "geStreamRecord\022T\n\022data_change_record\030\001 \001"
+ + "(\01326.google.spanner.v1.ChangeStreamRecor"
+ + "d.DataChangeRecordH\000\022Q\n\020heartbeat_record"
+ + "\030\002 \001(\01325.google.spanner.v1.ChangeStreamR"
+ + "ecord.HeartbeatRecordH\000\022\\\n\026partition_sta"
+ + "rt_record\030\003 \001(\0132:.google.spanner.v1.Chan"
+ + "geStreamRecord.PartitionStartRecordH\000\022X\n"
+ + "\024partition_end_record\030\004 \001(\01328.google.spa"
+ + "nner.v1.ChangeStreamRecord.PartitionEndR"
+ + "ecordH\000\022\\\n\026partition_event_record\030\005 \001(\0132"
+ + ":.google.spanner.v1.ChangeStreamRecord.P"
+ + "artitionEventRecordH\000\032\322\n\n\020DataChangeReco"
+ + "rd\0224\n\020commit_timestamp\030\001 \001(\0132\032.google.pr"
+ + "otobuf.Timestamp\022\027\n\017record_sequence\030\002 \001("
+ + "\t\022\035\n\025server_transaction_id\030\003 \001(\t\0222\n*is_l"
+ + "ast_record_in_transaction_in_partition\030\004"
+ + " \001(\010\022\r\n\005table\030\005 \001(\t\022^\n\017column_metadata\030\006"
+ + " \003(\0132E.google.spanner.v1.ChangeStreamRec"
+ + "ord.DataChangeRecord.ColumnMetadata\022H\n\004m"
+ + "ods\030\007 \003(\0132:.google.spanner.v1.ChangeStre"
+ + "amRecord.DataChangeRecord.Mod\022P\n\010mod_typ"
+ + "e\030\010 \001(\0162>.google.spanner.v1.ChangeStream"
+ + "Record.DataChangeRecord.ModType\022c\n\022value"
+ + "_capture_type\030\t \001(\0162G.google.spanner.v1."
+ + "ChangeStreamRecord.DataChangeRecord.Valu"
+ + "eCaptureType\022(\n number_of_records_in_tra"
+ + "nsaction\030\n \001(\005\022+\n#number_of_partitions_i"
+ + "n_transaction\030\013 \001(\005\022\027\n\017transaction_tag\030\014"
+ + " \001(\t\022\035\n\025is_system_transaction\030\r \001(\010\032w\n\016C"
+ + "olumnMetadata\022\014\n\004name\030\001 \001(\t\022%\n\004type\030\002 \001("
+ + "\0132\027.google.spanner.v1.Type\022\026\n\016is_primary"
+ + "_key\030\003 \001(\010\022\030\n\020ordinal_position\030\004 \001(\003\032P\n\010"
+ + "ModValue\022\035\n\025column_metadata_index\030\001 \001(\005\022"
+ + "%\n\005value\030\002 \001(\0132\026.google.protobuf.Value\032\376"
+ + "\001\n\003Mod\022M\n\004keys\030\001 \003(\0132?.google.spanner.v1"
+ + ".ChangeStreamRecord.DataChangeRecord.Mod"
+ + "Value\022S\n\nold_values\030\002 \003(\0132?.google.spann"
+ + "er.v1.ChangeStreamRecord.DataChangeRecor"
+ + "d.ModValue\022S\n\nnew_values\030\003 \003(\0132?.google."
+ + "spanner.v1.ChangeStreamRecord.DataChange"
+ + "Record.ModValue\"G\n\007ModType\022\030\n\024MOD_TYPE_U"
+ + "NSPECIFIED\020\000\022\n\n\006INSERT\020\n\022\n\n\006UPDATE\020\024\022\n\n\006"
+ + "DELETE\020\036\"\207\001\n\020ValueCaptureType\022\"\n\036VALUE_C"
+ + "APTURE_TYPE_UNSPECIFIED\020\000\022\026\n\022OLD_AND_NEW"
+ + "_VALUES\020\n\022\016\n\nNEW_VALUES\020\024\022\013\n\007NEW_ROW\020\036\022\032"
+ + "\n\026NEW_ROW_AND_OLD_VALUES\020(\032@\n\017HeartbeatR"
+ + "ecord\022-\n\ttimestamp\030\001 \001(\0132\032.google.protob"
+ + "uf.Timestamp\032~\n\024PartitionStartRecord\0223\n\017"
+ + "start_timestamp\030\001 \001(\0132\032.google.protobuf."
+ + "Timestamp\022\027\n\017record_sequence\030\002 \001(\t\022\030\n\020pa"
+ + "rtition_tokens\030\003 \003(\t\032y\n\022PartitionEndReco"
+ + "rd\0221\n\rend_timestamp\030\001 \001(\0132\032.google.proto"
+ + "buf.Timestamp\022\027\n\017record_sequence\030\002 \001(\t\022\027"
+ + "\n\017partition_token\030\003 \001(\t\032\244\003\n\024PartitionEve"
+ + "ntRecord\0224\n\020commit_timestamp\030\001 \001(\0132\032.goo"
+ + "gle.protobuf.Timestamp\022\027\n\017record_sequenc"
+ + "e\030\002 \001(\t\022\027\n\017partition_token\030\003 \001(\t\022^\n\016move"
+ + "_in_events\030\004 \003(\0132F.google.spanner.v1.Cha"
+ + "ngeStreamRecord.PartitionEventRecord.Mov"
+ + "eInEvent\022`\n\017move_out_events\030\005 \003(\0132G.goog"
+ + "le.spanner.v1.ChangeStreamRecord.Partiti"
+ + "onEventRecord.MoveOutEvent\032-\n\013MoveInEven"
+ + "t\022\036\n\026source_partition_token\030\001 \001(\t\0323\n\014Mov"
+ + "eOutEvent\022#\n\033destination_partition_token"
+ + "\030\001 \001(\tB\010\n\006recordB\264\001\n\025com.google.spanner."
+ + "v1B\021ChangeStreamProtoP\001Z5cloud.google.co"
+ + "m/go/spanner/apiv1/spannerpb;spannerpb\252\002"
+ + "\027Google.Cloud.Spanner.V1\312\002\027Google\\Cloud\\"
+ + "Spanner\\V1\352\002\032Google::Cloud::Spanner::V1b"
+ + "\006proto3"
+ };
+ descriptor =
+ com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
+ descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ com.google.protobuf.StructProto.getDescriptor(),
+ com.google.protobuf.TimestampProto.getDescriptor(),
+ com.google.spanner.v1.TypeProto.getDescriptor(),
+ });
+ internal_static_google_spanner_v1_ChangeStreamRecord_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_google_spanner_v1_ChangeStreamRecord_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_spanner_v1_ChangeStreamRecord_descriptor,
+ new java.lang.String[] {
+ "DataChangeRecord",
+ "HeartbeatRecord",
+ "PartitionStartRecord",
+ "PartitionEndRecord",
+ "PartitionEventRecord",
+ "Record",
+ });
+ internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_descriptor =
+ internal_static_google_spanner_v1_ChangeStreamRecord_descriptor.getNestedTypes().get(0);
+ internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_descriptor,
+ new java.lang.String[] {
+ "CommitTimestamp",
+ "RecordSequence",
+ "ServerTransactionId",
+ "IsLastRecordInTransactionInPartition",
+ "Table",
+ "ColumnMetadata",
+ "Mods",
+ "ModType",
+ "ValueCaptureType",
+ "NumberOfRecordsInTransaction",
+ "NumberOfPartitionsInTransaction",
+ "TransactionTag",
+ "IsSystemTransaction",
+ });
+ internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_ColumnMetadata_descriptor =
+ internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_descriptor
+ .getNestedTypes()
+ .get(0);
+ internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_ColumnMetadata_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_ColumnMetadata_descriptor,
+ new java.lang.String[] {
+ "Name", "Type", "IsPrimaryKey", "OrdinalPosition",
+ });
+ internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_ModValue_descriptor =
+ internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_descriptor
+ .getNestedTypes()
+ .get(1);
+ internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_ModValue_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_ModValue_descriptor,
+ new java.lang.String[] {
+ "ColumnMetadataIndex", "Value",
+ });
+ internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_Mod_descriptor =
+ internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_descriptor
+ .getNestedTypes()
+ .get(2);
+ internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_Mod_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_Mod_descriptor,
+ new java.lang.String[] {
+ "Keys", "OldValues", "NewValues",
+ });
+ internal_static_google_spanner_v1_ChangeStreamRecord_HeartbeatRecord_descriptor =
+ internal_static_google_spanner_v1_ChangeStreamRecord_descriptor.getNestedTypes().get(1);
+ internal_static_google_spanner_v1_ChangeStreamRecord_HeartbeatRecord_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_spanner_v1_ChangeStreamRecord_HeartbeatRecord_descriptor,
+ new java.lang.String[] {
+ "Timestamp",
+ });
+ internal_static_google_spanner_v1_ChangeStreamRecord_PartitionStartRecord_descriptor =
+ internal_static_google_spanner_v1_ChangeStreamRecord_descriptor.getNestedTypes().get(2);
+ internal_static_google_spanner_v1_ChangeStreamRecord_PartitionStartRecord_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_spanner_v1_ChangeStreamRecord_PartitionStartRecord_descriptor,
+ new java.lang.String[] {
+ "StartTimestamp", "RecordSequence", "PartitionTokens",
+ });
+ internal_static_google_spanner_v1_ChangeStreamRecord_PartitionEndRecord_descriptor =
+ internal_static_google_spanner_v1_ChangeStreamRecord_descriptor.getNestedTypes().get(3);
+ internal_static_google_spanner_v1_ChangeStreamRecord_PartitionEndRecord_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_spanner_v1_ChangeStreamRecord_PartitionEndRecord_descriptor,
+ new java.lang.String[] {
+ "EndTimestamp", "RecordSequence", "PartitionToken",
+ });
+ internal_static_google_spanner_v1_ChangeStreamRecord_PartitionEventRecord_descriptor =
+ internal_static_google_spanner_v1_ChangeStreamRecord_descriptor.getNestedTypes().get(4);
+ internal_static_google_spanner_v1_ChangeStreamRecord_PartitionEventRecord_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_spanner_v1_ChangeStreamRecord_PartitionEventRecord_descriptor,
+ new java.lang.String[] {
+ "CommitTimestamp",
+ "RecordSequence",
+ "PartitionToken",
+ "MoveInEvents",
+ "MoveOutEvents",
+ });
+ internal_static_google_spanner_v1_ChangeStreamRecord_PartitionEventRecord_MoveInEvent_descriptor =
+ internal_static_google_spanner_v1_ChangeStreamRecord_PartitionEventRecord_descriptor
+ .getNestedTypes()
+ .get(0);
+ internal_static_google_spanner_v1_ChangeStreamRecord_PartitionEventRecord_MoveInEvent_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_spanner_v1_ChangeStreamRecord_PartitionEventRecord_MoveInEvent_descriptor,
+ new java.lang.String[] {
+ "SourcePartitionToken",
+ });
+ internal_static_google_spanner_v1_ChangeStreamRecord_PartitionEventRecord_MoveOutEvent_descriptor =
+ internal_static_google_spanner_v1_ChangeStreamRecord_PartitionEventRecord_descriptor
+ .getNestedTypes()
+ .get(1);
+ internal_static_google_spanner_v1_ChangeStreamRecord_PartitionEventRecord_MoveOutEvent_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_spanner_v1_ChangeStreamRecord_PartitionEventRecord_MoveOutEvent_descriptor,
+ new java.lang.String[] {
+ "DestinationPartitionToken",
+ });
+ com.google.protobuf.StructProto.getDescriptor();
+ com.google.protobuf.TimestampProto.getDescriptor();
+ com.google.spanner.v1.TypeProto.getDescriptor();
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ChangeStreamRecord.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ChangeStreamRecord.java
new file mode 100644
index 00000000000..e842c7fc79a
--- /dev/null
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ChangeStreamRecord.java
@@ -0,0 +1,21325 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/spanner/v1/change_stream.proto
+
+// Protobuf Java Version: 3.25.8
+package com.google.spanner.v1;
+
+/**
+ *
+ *
+ *
+ * Spanner Change Streams enable customers to capture and stream out changes to
+ * their Spanner databases in real-time. A change stream
+ * can be created with option partition_mode='IMMUTABLE_KEY_RANGE' or
+ * partition_mode='MUTABLE_KEY_RANGE'.
+ *
+ * This message is only used in Change Streams created with the option
+ * partition_mode='MUTABLE_KEY_RANGE'. Spanner automatically creates a special
+ * Table-Valued Function (TVF) along with each Change Streams. The function
+ * provides access to the change stream's records. The function is named
+ * READ_<change_stream_name> (where <change_stream_name> is the
+ * name of the change stream), and it returns a table with only one column
+ * called ChangeRecord.
+ *
+ *
+ * Protobuf type {@code google.spanner.v1.ChangeStreamRecord}
+ */
+public final class ChangeStreamRecord extends com.google.protobuf.GeneratedMessageV3
+ implements
+ // @@protoc_insertion_point(message_implements:google.spanner.v1.ChangeStreamRecord)
+ ChangeStreamRecordOrBuilder {
+ private static final long serialVersionUID = 0L;
+
+ // Use ChangeStreamRecord.newBuilder() to construct.
+ private ChangeStreamRecord(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
+ super(builder);
+ }
+
+ private ChangeStreamRecord() {}
+
+ @java.lang.Override
+ @SuppressWarnings({"unused"})
+ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
+ return new ChangeStreamRecord();
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.spanner.v1.ChangeStreamRecord.class,
+ com.google.spanner.v1.ChangeStreamRecord.Builder.class);
+ }
+
+ public interface DataChangeRecordOrBuilder
+ extends
+ // @@protoc_insertion_point(interface_extends:google.spanner.v1.ChangeStreamRecord.DataChangeRecord)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ *
+ *
+ *
+ * Indicates the timestamp in which the change was committed.
+ * DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp commit_timestamp = 1;
+ *
+ * @return Whether the commitTimestamp field is set.
+ */
+ boolean hasCommitTimestamp();
+
+ /**
+ *
+ *
+ *
+ * Indicates the timestamp in which the change was committed.
+ * DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp commit_timestamp = 1;
+ *
+ * @return The commitTimestamp.
+ */
+ com.google.protobuf.Timestamp getCommitTimestamp();
+
+ /**
+ *
+ *
+ *
+ * Indicates the timestamp in which the change was committed.
+ * DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp commit_timestamp = 1;
+ */
+ com.google.protobuf.TimestampOrBuilder getCommitTimestampOrBuilder();
+
+ /**
+ *
+ *
+ *
+ * Record sequence numbers are unique and monotonically increasing (but not
+ * necessarily contiguous) for a specific timestamp across record
+ * types in the same partition. To guarantee ordered processing, the reader
+ * should process records (of potentially different types) in
+ * record_sequence order for a specific timestamp in the same partition.
+ *
+ * The record sequence number ordering across partitions is only meaningful
+ * in the context of a specific transaction. Record sequence numbers are
+ * unique across partitions for a specific transaction. Sort the
+ * DataChangeRecords for the same
+ * [server_transaction_id][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.server_transaction_id]
+ * by
+ * [record_sequence][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.record_sequence]
+ * to reconstruct the ordering of the changes within the transaction.
+ *
+ *
+ * string record_sequence = 2;
+ *
+ * @return The recordSequence.
+ */
+ java.lang.String getRecordSequence();
+
+ /**
+ *
+ *
+ *
+ * Record sequence numbers are unique and monotonically increasing (but not
+ * necessarily contiguous) for a specific timestamp across record
+ * types in the same partition. To guarantee ordered processing, the reader
+ * should process records (of potentially different types) in
+ * record_sequence order for a specific timestamp in the same partition.
+ *
+ * The record sequence number ordering across partitions is only meaningful
+ * in the context of a specific transaction. Record sequence numbers are
+ * unique across partitions for a specific transaction. Sort the
+ * DataChangeRecords for the same
+ * [server_transaction_id][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.server_transaction_id]
+ * by
+ * [record_sequence][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.record_sequence]
+ * to reconstruct the ordering of the changes within the transaction.
+ *
+ *
+ * string record_sequence = 2;
+ *
+ * @return The bytes for recordSequence.
+ */
+ com.google.protobuf.ByteString getRecordSequenceBytes();
+
+ /**
+ *
+ *
+ *
+ * Provides a globally unique string that represents the transaction in
+ * which the change was committed. Multiple transactions can have the same
+ * commit timestamp, but each transaction has a unique
+ * server_transaction_id.
+ *
+ *
+ * string server_transaction_id = 3;
+ *
+ * @return The serverTransactionId.
+ */
+ java.lang.String getServerTransactionId();
+
+ /**
+ *
+ *
+ *
+ * Provides a globally unique string that represents the transaction in
+ * which the change was committed. Multiple transactions can have the same
+ * commit timestamp, but each transaction has a unique
+ * server_transaction_id.
+ *
+ *
+ * string server_transaction_id = 3;
+ *
+ * @return The bytes for serverTransactionId.
+ */
+ com.google.protobuf.ByteString getServerTransactionIdBytes();
+
+ /**
+ *
+ *
+ *
+ * Indicates whether this is the last record for a transaction in the
+ * current partition. Clients can use this field to determine when all
+ * records for a transaction in the current partition have been received.
+ *
+ *
+ * bool is_last_record_in_transaction_in_partition = 4;
+ *
+ * @return The isLastRecordInTransactionInPartition.
+ */
+ boolean getIsLastRecordInTransactionInPartition();
+
+ /**
+ *
+ *
+ *
+ * Name of the table affected by the change.
+ *
+ *
+ * string table = 5;
+ *
+ * @return The table.
+ */
+ java.lang.String getTable();
+
+ /**
+ *
+ *
+ *
+ * Name of the table affected by the change.
+ *
+ *
+ * string table = 5;
+ *
+ * @return The bytes for table.
+ */
+ com.google.protobuf.ByteString getTableBytes();
+
+ /**
+ *
+ *
+ *
+ * Provides metadata describing the columns associated with the
+ * [mods][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.mods] listed
+ * below.
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata column_metadata = 6;
+ *
+ */
+ java.util.List
+ getColumnMetadataList();
+
+ /**
+ *
+ *
+ *
+ * Provides metadata describing the columns associated with the
+ * [mods][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.mods] listed
+ * below.
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata column_metadata = 6;
+ *
+ */
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata getColumnMetadata(
+ int index);
+
+ /**
+ *
+ *
+ *
+ * Provides metadata describing the columns associated with the
+ * [mods][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.mods] listed
+ * below.
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata column_metadata = 6;
+ *
+ */
+ int getColumnMetadataCount();
+
+ /**
+ *
+ *
+ *
+ * Provides metadata describing the columns associated with the
+ * [mods][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.mods] listed
+ * below.
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata column_metadata = 6;
+ *
+ */
+ java.util.List<
+ ? extends
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadataOrBuilder>
+ getColumnMetadataOrBuilderList();
+
+ /**
+ *
+ *
+ *
+ * Provides metadata describing the columns associated with the
+ * [mods][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.mods] listed
+ * below.
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata column_metadata = 6;
+ *
+ */
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadataOrBuilder
+ getColumnMetadataOrBuilder(int index);
+
+ /**
+ *
+ *
+ *
+ * Describes the changes that were made.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod mods = 7;
+ */
+ java.util.List getModsList();
+
+ /**
+ *
+ *
+ *
+ * Describes the changes that were made.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod mods = 7;
+ */
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod getMods(int index);
+
+ /**
+ *
+ *
+ *
+ * Describes the changes that were made.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod mods = 7;
+ */
+ int getModsCount();
+
+ /**
+ *
+ *
+ *
+ * Describes the changes that were made.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod mods = 7;
+ */
+ java.util.List extends com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModOrBuilder>
+ getModsOrBuilderList();
+
+ /**
+ *
+ *
+ *
+ * Describes the changes that were made.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod mods = 7;
+ */
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModOrBuilder getModsOrBuilder(
+ int index);
+
+ /**
+ *
+ *
+ *
+ * Describes the type of change.
+ *
+ *
+ * .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType mod_type = 8;
+ *
+ * @return The enum numeric value on the wire for modType.
+ */
+ int getModTypeValue();
+
+ /**
+ *
+ *
+ *
+ * Describes the type of change.
+ *
+ *
+ * .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType mod_type = 8;
+ *
+ * @return The modType.
+ */
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType getModType();
+
+ /**
+ *
+ *
+ *
+ * Describes the value capture type that was specified in the change stream
+ * configuration when this change was captured.
+ *
+ *
+ *
+ * .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType value_capture_type = 9;
+ *
+ *
+ * @return The enum numeric value on the wire for valueCaptureType.
+ */
+ int getValueCaptureTypeValue();
+
+ /**
+ *
+ *
+ *
+ * Describes the value capture type that was specified in the change stream
+ * configuration when this change was captured.
+ *
+ *
+ *
+ * .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType value_capture_type = 9;
+ *
+ *
+ * @return The valueCaptureType.
+ */
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType
+ getValueCaptureType();
+
+ /**
+ *
+ *
+ *
+ * Indicates the number of data change records that are part of this
+ * transaction across all change stream partitions. This value can be used
+ * to assemble all the records associated with a particular transaction.
+ *
+ *
+ * int32 number_of_records_in_transaction = 10;
+ *
+ * @return The numberOfRecordsInTransaction.
+ */
+ int getNumberOfRecordsInTransaction();
+
+ /**
+ *
+ *
+ *
+ * Indicates the number of partitions that return data change records for
+ * this transaction. This value can be helpful in assembling all records
+ * associated with a particular transaction.
+ *
+ *
+ * int32 number_of_partitions_in_transaction = 11;
+ *
+ * @return The numberOfPartitionsInTransaction.
+ */
+ int getNumberOfPartitionsInTransaction();
+
+ /**
+ *
+ *
+ *
+ * Indicates the transaction tag associated with this transaction.
+ *
+ *
+ * string transaction_tag = 12;
+ *
+ * @return The transactionTag.
+ */
+ java.lang.String getTransactionTag();
+
+ /**
+ *
+ *
+ *
+ * Indicates the transaction tag associated with this transaction.
+ *
+ *
+ * string transaction_tag = 12;
+ *
+ * @return The bytes for transactionTag.
+ */
+ com.google.protobuf.ByteString getTransactionTagBytes();
+
+ /**
+ *
+ *
+ *
+ * Indicates whether the transaction is a system transaction. System
+ * transactions include those issued by time-to-live (TTL), column backfill,
+ * etc.
+ *
+ *
+ * bool is_system_transaction = 13;
+ *
+ * @return The isSystemTransaction.
+ */
+ boolean getIsSystemTransaction();
+ }
+
+ /**
+ *
+ *
+ *
+ * A data change record contains a set of changes to a table with the same
+ * modification type (insert, update, or delete) committed at the same commit
+ * timestamp in one change stream partition for the same transaction. Multiple
+ * data change records can be returned for the same transaction across
+ * multiple change stream partitions.
+ *
+ *
+ * Protobuf type {@code google.spanner.v1.ChangeStreamRecord.DataChangeRecord}
+ */
+ public static final class DataChangeRecord extends com.google.protobuf.GeneratedMessageV3
+ implements
+ // @@protoc_insertion_point(message_implements:google.spanner.v1.ChangeStreamRecord.DataChangeRecord)
+ DataChangeRecordOrBuilder {
+ private static final long serialVersionUID = 0L;
+
+ // Use DataChangeRecord.newBuilder() to construct.
+ private DataChangeRecord(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
+ super(builder);
+ }
+
+ private DataChangeRecord() {
+ recordSequence_ = "";
+ serverTransactionId_ = "";
+ table_ = "";
+ columnMetadata_ = java.util.Collections.emptyList();
+ mods_ = java.util.Collections.emptyList();
+ modType_ = 0;
+ valueCaptureType_ = 0;
+ transactionTag_ = "";
+ }
+
+ @java.lang.Override
+ @SuppressWarnings({"unused"})
+ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
+ return new DataChangeRecord();
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.class,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Builder.class);
+ }
+
+ /**
+ *
+ *
+ *
+ * Mod type describes the type of change Spanner applied to the data. For
+ * example, if the client submits an INSERT_OR_UPDATE request, Spanner will
+ * perform an insert if there is no existing row and return ModType INSERT.
+ * Alternatively, if there is an existing row, Spanner will perform an
+ * update and return ModType UPDATE.
+ *
+ *
+ * Protobuf enum {@code google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType}
+ */
+ public enum ModType implements com.google.protobuf.ProtocolMessageEnum {
+ /**
+ *
+ *
+ *
+ * Not specified.
+ *
+ *
+ * MOD_TYPE_UNSPECIFIED = 0;
+ */
+ MOD_TYPE_UNSPECIFIED(0),
+ /**
+ *
+ *
+ *
+ * Indicates data was inserted.
+ *
+ *
+ * INSERT = 10;
+ */
+ INSERT(10),
+ /**
+ *
+ *
+ *
+ * Indicates existing data was updated.
+ *
+ *
+ * UPDATE = 20;
+ */
+ UPDATE(20),
+ /**
+ *
+ *
+ *
+ * Indicates existing data was deleted.
+ *
+ *
+ * DELETE = 30;
+ */
+ DELETE(30),
+ UNRECOGNIZED(-1),
+ ;
+
+ /**
+ *
+ *
+ *
+ * Not specified.
+ *
+ *
+ * MOD_TYPE_UNSPECIFIED = 0;
+ */
+ public static final int MOD_TYPE_UNSPECIFIED_VALUE = 0;
+
+ /**
+ *
+ *
+ *
+ * Indicates data was inserted.
+ *
+ *
+ * INSERT = 10;
+ */
+ public static final int INSERT_VALUE = 10;
+
+ /**
+ *
+ *
+ *
+ * Indicates existing data was updated.
+ *
+ *
+ * UPDATE = 20;
+ */
+ public static final int UPDATE_VALUE = 20;
+
+ /**
+ *
+ *
+ *
+ * Indicates existing data was deleted.
+ *
+ *
+ * DELETE = 30;
+ */
+ public static final int DELETE_VALUE = 30;
+
+ public final int getNumber() {
+ if (this == UNRECOGNIZED) {
+ throw new java.lang.IllegalArgumentException(
+ "Can't get the number of an unknown enum value.");
+ }
+ return value;
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @java.lang.Deprecated
+ public static ModType valueOf(int value) {
+ return forNumber(value);
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ */
+ public static ModType forNumber(int value) {
+ switch (value) {
+ case 0:
+ return MOD_TYPE_UNSPECIFIED;
+ case 10:
+ return INSERT;
+ case 20:
+ return UPDATE;
+ case 30:
+ return DELETE;
+ default:
+ return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() {
+ return internalValueMap;
+ }
+
+ private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap =
+ new com.google.protobuf.Internal.EnumLiteMap() {
+ public ModType findValueByNumber(int number) {
+ return ModType.forNumber(number);
+ }
+ };
+
+ public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
+ if (this == UNRECOGNIZED) {
+ throw new java.lang.IllegalStateException(
+ "Can't get the descriptor of an unrecognized enum value.");
+ }
+ return getDescriptor().getValues().get(ordinal());
+ }
+
+ public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
+ return getDescriptor();
+ }
+
+ public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
+ return com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.getDescriptor()
+ .getEnumTypes()
+ .get(0);
+ }
+
+ private static final ModType[] VALUES = values();
+
+ public static ModType valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+ if (desc.getType() != getDescriptor()) {
+ throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
+ }
+ if (desc.getIndex() == -1) {
+ return UNRECOGNIZED;
+ }
+ return VALUES[desc.getIndex()];
+ }
+
+ private final int value;
+
+ private ModType(int value) {
+ this.value = value;
+ }
+
+ // @@protoc_insertion_point(enum_scope:google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType)
+ }
+
+ /**
+ *
+ *
+ *
+ * Value capture type describes which values are recorded in the data
+ * change record.
+ *
+ *
+ * Protobuf enum {@code google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType}
+ */
+ public enum ValueCaptureType implements com.google.protobuf.ProtocolMessageEnum {
+ /**
+ *
+ *
+ *
+ * Not specified.
+ *
+ *
+ * VALUE_CAPTURE_TYPE_UNSPECIFIED = 0;
+ */
+ VALUE_CAPTURE_TYPE_UNSPECIFIED(0),
+ /**
+ *
+ *
+ *
+ * Records both old and new values of the modified watched columns.
+ *
+ *
+ * OLD_AND_NEW_VALUES = 10;
+ */
+ OLD_AND_NEW_VALUES(10),
+ /**
+ *
+ *
+ *
+ * Records only new values of the modified watched columns.
+ *
+ *
+ * NEW_VALUES = 20;
+ */
+ NEW_VALUES(20),
+ /**
+ *
+ *
+ *
+ * Records new values of all watched columns, including modified and
+ * unmodified columns.
+ *
+ *
+ * NEW_ROW = 30;
+ */
+ NEW_ROW(30),
+ /**
+ *
+ *
+ *
+ * Records the new values of all watched columns, including modified and
+ * unmodified columns. Also records the old values of the modified
+ * columns.
+ *
+ *
+ * NEW_ROW_AND_OLD_VALUES = 40;
+ */
+ NEW_ROW_AND_OLD_VALUES(40),
+ UNRECOGNIZED(-1),
+ ;
+
+ /**
+ *
+ *
+ *
+ * Not specified.
+ *
+ *
+ * VALUE_CAPTURE_TYPE_UNSPECIFIED = 0;
+ */
+ public static final int VALUE_CAPTURE_TYPE_UNSPECIFIED_VALUE = 0;
+
+ /**
+ *
+ *
+ *
+ * Records both old and new values of the modified watched columns.
+ *
+ *
+ * OLD_AND_NEW_VALUES = 10;
+ */
+ public static final int OLD_AND_NEW_VALUES_VALUE = 10;
+
+ /**
+ *
+ *
+ *
+ * Records only new values of the modified watched columns.
+ *
+ *
+ * NEW_VALUES = 20;
+ */
+ public static final int NEW_VALUES_VALUE = 20;
+
+ /**
+ *
+ *
+ *
+ * Records new values of all watched columns, including modified and
+ * unmodified columns.
+ *
+ *
+ * NEW_ROW = 30;
+ */
+ public static final int NEW_ROW_VALUE = 30;
+
+ /**
+ *
+ *
+ *
+ * Records the new values of all watched columns, including modified and
+ * unmodified columns. Also records the old values of the modified
+ * columns.
+ *
+ *
+ * NEW_ROW_AND_OLD_VALUES = 40;
+ */
+ public static final int NEW_ROW_AND_OLD_VALUES_VALUE = 40;
+
+ public final int getNumber() {
+ if (this == UNRECOGNIZED) {
+ throw new java.lang.IllegalArgumentException(
+ "Can't get the number of an unknown enum value.");
+ }
+ return value;
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @java.lang.Deprecated
+ public static ValueCaptureType valueOf(int value) {
+ return forNumber(value);
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ */
+ public static ValueCaptureType forNumber(int value) {
+ switch (value) {
+ case 0:
+ return VALUE_CAPTURE_TYPE_UNSPECIFIED;
+ case 10:
+ return OLD_AND_NEW_VALUES;
+ case 20:
+ return NEW_VALUES;
+ case 30:
+ return NEW_ROW;
+ case 40:
+ return NEW_ROW_AND_OLD_VALUES;
+ default:
+ return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap
+ internalGetValueMap() {
+ return internalValueMap;
+ }
+
+ private static final com.google.protobuf.Internal.EnumLiteMap
+ internalValueMap =
+ new com.google.protobuf.Internal.EnumLiteMap() {
+ public ValueCaptureType findValueByNumber(int number) {
+ return ValueCaptureType.forNumber(number);
+ }
+ };
+
+ public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
+ if (this == UNRECOGNIZED) {
+ throw new java.lang.IllegalStateException(
+ "Can't get the descriptor of an unrecognized enum value.");
+ }
+ return getDescriptor().getValues().get(ordinal());
+ }
+
+ public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
+ return getDescriptor();
+ }
+
+ public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
+ return com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.getDescriptor()
+ .getEnumTypes()
+ .get(1);
+ }
+
+ private static final ValueCaptureType[] VALUES = values();
+
+ public static ValueCaptureType valueOf(
+ com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+ if (desc.getType() != getDescriptor()) {
+ throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
+ }
+ if (desc.getIndex() == -1) {
+ return UNRECOGNIZED;
+ }
+ return VALUES[desc.getIndex()];
+ }
+
+ private final int value;
+
+ private ValueCaptureType(int value) {
+ this.value = value;
+ }
+
+ // @@protoc_insertion_point(enum_scope:google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType)
+ }
+
+ public interface ColumnMetadataOrBuilder
+ extends
+ // @@protoc_insertion_point(interface_extends:google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ *
+ *
+ *
+ * Name of the column.
+ *
+ *
+ * string name = 1;
+ *
+ * @return The name.
+ */
+ java.lang.String getName();
+
+ /**
+ *
+ *
+ *
+ * Name of the column.
+ *
+ *
+ * string name = 1;
+ *
+ * @return The bytes for name.
+ */
+ com.google.protobuf.ByteString getNameBytes();
+
+ /**
+ *
+ *
+ *
+ * Type of the column.
+ *
+ *
+ * .google.spanner.v1.Type type = 2;
+ *
+ * @return Whether the type field is set.
+ */
+ boolean hasType();
+
+ /**
+ *
+ *
+ *
+ * Type of the column.
+ *
+ *
+ * .google.spanner.v1.Type type = 2;
+ *
+ * @return The type.
+ */
+ com.google.spanner.v1.Type getType();
+
+ /**
+ *
+ *
+ *
+ * Type of the column.
+ *
+ *
+ * .google.spanner.v1.Type type = 2;
+ */
+ com.google.spanner.v1.TypeOrBuilder getTypeOrBuilder();
+
+ /**
+ *
+ *
+ *
+ * Indicates whether the column is a primary key column.
+ *
+ *
+ * bool is_primary_key = 3;
+ *
+ * @return The isPrimaryKey.
+ */
+ boolean getIsPrimaryKey();
+
+ /**
+ *
+ *
+ *
+ * Ordinal position of the column based on the original table definition
+ * in the schema starting with a value of 1.
+ *
+ *
+ * int64 ordinal_position = 4;
+ *
+ * @return The ordinalPosition.
+ */
+ long getOrdinalPosition();
+ }
+
+ /**
+ *
+ *
+ *
+ * Metadata for a column.
+ *
+ *
+ * Protobuf type {@code google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata}
+ */
+ public static final class ColumnMetadata extends com.google.protobuf.GeneratedMessageV3
+ implements
+ // @@protoc_insertion_point(message_implements:google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata)
+ ColumnMetadataOrBuilder {
+ private static final long serialVersionUID = 0L;
+
+ // Use ColumnMetadata.newBuilder() to construct.
+ private ColumnMetadata(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
+ super(builder);
+ }
+
+ private ColumnMetadata() {
+ name_ = "";
+ }
+
+ @java.lang.Override
+ @SuppressWarnings({"unused"})
+ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
+ return new ColumnMetadata();
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_ColumnMetadata_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_ColumnMetadata_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata.class,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata.Builder
+ .class);
+ }
+
+ private int bitField0_;
+ public static final int NAME_FIELD_NUMBER = 1;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object name_ = "";
+
+ /**
+ *
+ *
+ *
+ * Name of the column.
+ *
+ *
+ * string name = 1;
+ *
+ * @return The name.
+ */
+ @java.lang.Override
+ public java.lang.String getName() {
+ java.lang.Object ref = name_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ name_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Name of the column.
+ *
+ *
+ * string name = 1;
+ *
+ * @return The bytes for name.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getNameBytes() {
+ java.lang.Object ref = name_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ name_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int TYPE_FIELD_NUMBER = 2;
+ private com.google.spanner.v1.Type type_;
+
+ /**
+ *
+ *
+ *
+ * Type of the column.
+ *
+ *
+ * .google.spanner.v1.Type type = 2;
+ *
+ * @return Whether the type field is set.
+ */
+ @java.lang.Override
+ public boolean hasType() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * Type of the column.
+ *
+ *
+ * .google.spanner.v1.Type type = 2;
+ *
+ * @return The type.
+ */
+ @java.lang.Override
+ public com.google.spanner.v1.Type getType() {
+ return type_ == null ? com.google.spanner.v1.Type.getDefaultInstance() : type_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Type of the column.
+ *
+ *
+ * .google.spanner.v1.Type type = 2;
+ */
+ @java.lang.Override
+ public com.google.spanner.v1.TypeOrBuilder getTypeOrBuilder() {
+ return type_ == null ? com.google.spanner.v1.Type.getDefaultInstance() : type_;
+ }
+
+ public static final int IS_PRIMARY_KEY_FIELD_NUMBER = 3;
+ private boolean isPrimaryKey_ = false;
+
+ /**
+ *
+ *
+ *
+ * Indicates whether the column is a primary key column.
+ *
+ *
+ * bool is_primary_key = 3;
+ *
+ * @return The isPrimaryKey.
+ */
+ @java.lang.Override
+ public boolean getIsPrimaryKey() {
+ return isPrimaryKey_;
+ }
+
+ public static final int ORDINAL_POSITION_FIELD_NUMBER = 4;
+ private long ordinalPosition_ = 0L;
+
+ /**
+ *
+ *
+ *
+ * Ordinal position of the column based on the original table definition
+ * in the schema starting with a value of 1.
+ *
+ *
+ * int64 ordinal_position = 4;
+ *
+ * @return The ordinalPosition.
+ */
+ @java.lang.Override
+ public long getOrdinalPosition() {
+ return ordinalPosition_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
+ }
+ if (((bitField0_ & 0x00000001) != 0)) {
+ output.writeMessage(2, getType());
+ }
+ if (isPrimaryKey_ != false) {
+ output.writeBool(3, isPrimaryKey_);
+ }
+ if (ordinalPosition_ != 0L) {
+ output.writeInt64(4, ordinalPosition_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
+ }
+ if (((bitField0_ & 0x00000001) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getType());
+ }
+ if (isPrimaryKey_ != false) {
+ size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, isPrimaryKey_);
+ }
+ if (ordinalPosition_ != 0L) {
+ size += com.google.protobuf.CodedOutputStream.computeInt64Size(4, ordinalPosition_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj
+ instanceof com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata)) {
+ return super.equals(obj);
+ }
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata other =
+ (com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata) obj;
+
+ if (!getName().equals(other.getName())) return false;
+ if (hasType() != other.hasType()) return false;
+ if (hasType()) {
+ if (!getType().equals(other.getType())) return false;
+ }
+ if (getIsPrimaryKey() != other.getIsPrimaryKey()) return false;
+ if (getOrdinalPosition() != other.getOrdinalPosition()) return false;
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + NAME_FIELD_NUMBER;
+ hash = (53 * hash) + getName().hashCode();
+ if (hasType()) {
+ hash = (37 * hash) + TYPE_FIELD_NUMBER;
+ hash = (53 * hash) + getType().hashCode();
+ }
+ hash = (37 * hash) + IS_PRIMARY_KEY_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getIsPrimaryKey());
+ hash = (37 * hash) + ORDINAL_POSITION_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getOrdinalPosition());
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata
+ parseFrom(java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata
+ parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata
+ parseFrom(com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata
+ parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata
+ parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata
+ parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata
+ parseFrom(java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata
+ parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata
+ parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata
+ parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata
+ parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata
+ parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() {
+ return newBuilder();
+ }
+
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+
+ public static Builder newBuilder(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ *
+ * Metadata for a column.
+ *
+ *
+ * Protobuf type {@code google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata}
+ */
+ public static final class Builder
+ extends com.google.protobuf.GeneratedMessageV3.Builder
+ implements
+ // @@protoc_insertion_point(builder_implements:google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata)
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadataOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_ColumnMetadata_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_ColumnMetadata_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata.class,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata.Builder
+ .class);
+ }
+
+ // Construct using
+ // com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+ getTypeFieldBuilder();
+ }
+ }
+
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ bitField0_ = 0;
+ name_ = "";
+ type_ = null;
+ if (typeBuilder_ != null) {
+ typeBuilder_.dispose();
+ typeBuilder_ = null;
+ }
+ isPrimaryKey_ = false;
+ ordinalPosition_ = 0L;
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_ColumnMetadata_descriptor;
+ }
+
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata
+ getDefaultInstanceForType() {
+ return com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata
+ .getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata build() {
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata result =
+ buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata
+ buildPartial() {
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata result =
+ new com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata(this);
+ if (bitField0_ != 0) {
+ buildPartial0(result);
+ }
+ onBuilt();
+ return result;
+ }
+
+ private void buildPartial0(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata result) {
+ int from_bitField0_ = bitField0_;
+ if (((from_bitField0_ & 0x00000001) != 0)) {
+ result.name_ = name_;
+ }
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.type_ = typeBuilder_ == null ? type_ : typeBuilder_.build();
+ to_bitField0_ |= 0x00000001;
+ }
+ if (((from_bitField0_ & 0x00000004) != 0)) {
+ result.isPrimaryKey_ = isPrimaryKey_;
+ }
+ if (((from_bitField0_ & 0x00000008) != 0)) {
+ result.ordinalPosition_ = ordinalPosition_;
+ }
+ result.bitField0_ |= to_bitField0_;
+ }
+
+ @java.lang.Override
+ public Builder clone() {
+ return super.clone();
+ }
+
+ @java.lang.Override
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
+ return super.setField(field, value);
+ }
+
+ @java.lang.Override
+ public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return super.clearField(field);
+ }
+
+ @java.lang.Override
+ public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return super.clearOneof(oneof);
+ }
+
+ @java.lang.Override
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index,
+ java.lang.Object value) {
+ return super.setRepeatedField(field, index, value);
+ }
+
+ @java.lang.Override
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
+ return super.addRepeatedField(field, value);
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other
+ instanceof com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata) {
+ return mergeFrom(
+ (com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata) other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata other) {
+ if (other
+ == com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata
+ .getDefaultInstance()) return this;
+ if (!other.getName().isEmpty()) {
+ name_ = other.name_;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ }
+ if (other.hasType()) {
+ mergeType(other.getType());
+ }
+ if (other.getIsPrimaryKey() != false) {
+ setIsPrimaryKey(other.getIsPrimaryKey());
+ }
+ if (other.getOrdinalPosition() != 0L) {
+ setOrdinalPosition(other.getOrdinalPosition());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 10:
+ {
+ name_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000001;
+ break;
+ } // case 10
+ case 18:
+ {
+ input.readMessage(getTypeFieldBuilder().getBuilder(), extensionRegistry);
+ bitField0_ |= 0x00000002;
+ break;
+ } // case 18
+ case 24:
+ {
+ isPrimaryKey_ = input.readBool();
+ bitField0_ |= 0x00000004;
+ break;
+ } // case 24
+ case 32:
+ {
+ ordinalPosition_ = input.readInt64();
+ bitField0_ |= 0x00000008;
+ break;
+ } // case 32
+ default:
+ {
+ if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+ done = true; // was an endgroup tag
+ }
+ break;
+ } // default:
+ } // switch (tag)
+ } // while (!done)
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.unwrapIOException();
+ } finally {
+ onChanged();
+ } // finally
+ return this;
+ }
+
+ private int bitField0_;
+
+ private java.lang.Object name_ = "";
+
+ /**
+ *
+ *
+ *
+ * Name of the column.
+ *
+ *
+ * string name = 1;
+ *
+ * @return The name.
+ */
+ public java.lang.String getName() {
+ java.lang.Object ref = name_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ name_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Name of the column.
+ *
+ *
+ * string name = 1;
+ *
+ * @return The bytes for name.
+ */
+ public com.google.protobuf.ByteString getNameBytes() {
+ java.lang.Object ref = name_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ name_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Name of the column.
+ *
+ *
+ * string name = 1;
+ *
+ * @param value The name to set.
+ * @return This builder for chaining.
+ */
+ public Builder setName(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ name_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Name of the column.
+ *
+ *
+ * string name = 1;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearName() {
+ name_ = getDefaultInstance().getName();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Name of the column.
+ *
+ *
+ * string name = 1;
+ *
+ * @param value The bytes for name to set.
+ * @return This builder for chaining.
+ */
+ public Builder setNameBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ name_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ private com.google.spanner.v1.Type type_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.spanner.v1.Type,
+ com.google.spanner.v1.Type.Builder,
+ com.google.spanner.v1.TypeOrBuilder>
+ typeBuilder_;
+
+ /**
+ *
+ *
+ *
+ * Type of the column.
+ *
+ *
+ * .google.spanner.v1.Type type = 2;
+ *
+ * @return Whether the type field is set.
+ */
+ public boolean hasType() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * Type of the column.
+ *
+ *
+ * .google.spanner.v1.Type type = 2;
+ *
+ * @return The type.
+ */
+ public com.google.spanner.v1.Type getType() {
+ if (typeBuilder_ == null) {
+ return type_ == null ? com.google.spanner.v1.Type.getDefaultInstance() : type_;
+ } else {
+ return typeBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Type of the column.
+ *
+ *
+ * .google.spanner.v1.Type type = 2;
+ */
+ public Builder setType(com.google.spanner.v1.Type value) {
+ if (typeBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ type_ = value;
+ } else {
+ typeBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Type of the column.
+ *
+ *
+ * .google.spanner.v1.Type type = 2;
+ */
+ public Builder setType(com.google.spanner.v1.Type.Builder builderForValue) {
+ if (typeBuilder_ == null) {
+ type_ = builderForValue.build();
+ } else {
+ typeBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Type of the column.
+ *
+ *
+ * .google.spanner.v1.Type type = 2;
+ */
+ public Builder mergeType(com.google.spanner.v1.Type value) {
+ if (typeBuilder_ == null) {
+ if (((bitField0_ & 0x00000002) != 0)
+ && type_ != null
+ && type_ != com.google.spanner.v1.Type.getDefaultInstance()) {
+ getTypeBuilder().mergeFrom(value);
+ } else {
+ type_ = value;
+ }
+ } else {
+ typeBuilder_.mergeFrom(value);
+ }
+ if (type_ != null) {
+ bitField0_ |= 0x00000002;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Type of the column.
+ *
+ *
+ * .google.spanner.v1.Type type = 2;
+ */
+ public Builder clearType() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ type_ = null;
+ if (typeBuilder_ != null) {
+ typeBuilder_.dispose();
+ typeBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Type of the column.
+ *
+ *
+ * .google.spanner.v1.Type type = 2;
+ */
+ public com.google.spanner.v1.Type.Builder getTypeBuilder() {
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return getTypeFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ *
+ * Type of the column.
+ *
+ *
+ * .google.spanner.v1.Type type = 2;
+ */
+ public com.google.spanner.v1.TypeOrBuilder getTypeOrBuilder() {
+ if (typeBuilder_ != null) {
+ return typeBuilder_.getMessageOrBuilder();
+ } else {
+ return type_ == null ? com.google.spanner.v1.Type.getDefaultInstance() : type_;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Type of the column.
+ *
+ *
+ * .google.spanner.v1.Type type = 2;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.spanner.v1.Type,
+ com.google.spanner.v1.Type.Builder,
+ com.google.spanner.v1.TypeOrBuilder>
+ getTypeFieldBuilder() {
+ if (typeBuilder_ == null) {
+ typeBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.spanner.v1.Type,
+ com.google.spanner.v1.Type.Builder,
+ com.google.spanner.v1.TypeOrBuilder>(
+ getType(), getParentForChildren(), isClean());
+ type_ = null;
+ }
+ return typeBuilder_;
+ }
+
+ private boolean isPrimaryKey_;
+
+ /**
+ *
+ *
+ *
+ * Indicates whether the column is a primary key column.
+ *
+ *
+ * bool is_primary_key = 3;
+ *
+ * @return The isPrimaryKey.
+ */
+ @java.lang.Override
+ public boolean getIsPrimaryKey() {
+ return isPrimaryKey_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates whether the column is a primary key column.
+ *
+ *
+ * bool is_primary_key = 3;
+ *
+ * @param value The isPrimaryKey to set.
+ * @return This builder for chaining.
+ */
+ public Builder setIsPrimaryKey(boolean value) {
+
+ isPrimaryKey_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates whether the column is a primary key column.
+ *
+ *
+ * bool is_primary_key = 3;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearIsPrimaryKey() {
+ bitField0_ = (bitField0_ & ~0x00000004);
+ isPrimaryKey_ = false;
+ onChanged();
+ return this;
+ }
+
+ private long ordinalPosition_;
+
+ /**
+ *
+ *
+ *
+ * Ordinal position of the column based on the original table definition
+ * in the schema starting with a value of 1.
+ *
+ *
+ * int64 ordinal_position = 4;
+ *
+ * @return The ordinalPosition.
+ */
+ @java.lang.Override
+ public long getOrdinalPosition() {
+ return ordinalPosition_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Ordinal position of the column based on the original table definition
+ * in the schema starting with a value of 1.
+ *
+ *
+ * int64 ordinal_position = 4;
+ *
+ * @param value The ordinalPosition to set.
+ * @return This builder for chaining.
+ */
+ public Builder setOrdinalPosition(long value) {
+
+ ordinalPosition_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Ordinal position of the column based on the original table definition
+ * in the schema starting with a value of 1.
+ *
+ *
+ * int64 ordinal_position = 4;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearOrdinalPosition() {
+ bitField0_ = (bitField0_ & ~0x00000008);
+ ordinalPosition_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata)
+ private static final com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata
+ DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE =
+ new com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata();
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata
+ getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser PARSER =
+ new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public ColumnMetadata parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ Builder builder = newBuilder();
+ try {
+ builder.mergeFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(builder.buildPartial());
+ } catch (com.google.protobuf.UninitializedMessageException e) {
+ throw e.asInvalidProtocolBufferException()
+ .setUnfinishedMessage(builder.buildPartial());
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(e)
+ .setUnfinishedMessage(builder.buildPartial());
+ }
+ return builder.buildPartial();
+ }
+ };
+
+ public static com.google.protobuf.Parser parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser getParserForType() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata
+ getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+ }
+
+ public interface ModValueOrBuilder
+ extends
+ // @@protoc_insertion_point(interface_extends:google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ *
+ *
+ *
+ * Index within the repeated
+ * [column_metadata][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.column_metadata]
+ * field, to obtain the column metadata for the column that was modified.
+ *
+ *
+ * int32 column_metadata_index = 1;
+ *
+ * @return The columnMetadataIndex.
+ */
+ int getColumnMetadataIndex();
+
+ /**
+ *
+ *
+ *
+ * The value of the column.
+ *
+ *
+ * .google.protobuf.Value value = 2;
+ *
+ * @return Whether the value field is set.
+ */
+ boolean hasValue();
+
+ /**
+ *
+ *
+ *
+ * The value of the column.
+ *
+ *
+ * .google.protobuf.Value value = 2;
+ *
+ * @return The value.
+ */
+ com.google.protobuf.Value getValue();
+
+ /**
+ *
+ *
+ *
+ * The value of the column.
+ *
+ *
+ * .google.protobuf.Value value = 2;
+ */
+ com.google.protobuf.ValueOrBuilder getValueOrBuilder();
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the value and associated metadata for a particular field of the
+ * [Mod][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod].
+ *
+ *
+ * Protobuf type {@code google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue}
+ */
+ public static final class ModValue extends com.google.protobuf.GeneratedMessageV3
+ implements
+ // @@protoc_insertion_point(message_implements:google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue)
+ ModValueOrBuilder {
+ private static final long serialVersionUID = 0L;
+
+ // Use ModValue.newBuilder() to construct.
+ private ModValue(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
+ super(builder);
+ }
+
+ private ModValue() {}
+
+ @java.lang.Override
+ @SuppressWarnings({"unused"})
+ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
+ return new ModValue();
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_ModValue_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_ModValue_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.class,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.Builder.class);
+ }
+
+ private int bitField0_;
+ public static final int COLUMN_METADATA_INDEX_FIELD_NUMBER = 1;
+ private int columnMetadataIndex_ = 0;
+
+ /**
+ *
+ *
+ *
+ * Index within the repeated
+ * [column_metadata][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.column_metadata]
+ * field, to obtain the column metadata for the column that was modified.
+ *
+ *
+ * int32 column_metadata_index = 1;
+ *
+ * @return The columnMetadataIndex.
+ */
+ @java.lang.Override
+ public int getColumnMetadataIndex() {
+ return columnMetadataIndex_;
+ }
+
+ public static final int VALUE_FIELD_NUMBER = 2;
+ private com.google.protobuf.Value value_;
+
+ /**
+ *
+ *
+ *
+ * The value of the column.
+ *
+ *
+ * .google.protobuf.Value value = 2;
+ *
+ * @return Whether the value field is set.
+ */
+ @java.lang.Override
+ public boolean hasValue() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * The value of the column.
+ *
+ *
+ * .google.protobuf.Value value = 2;
+ *
+ * @return The value.
+ */
+ @java.lang.Override
+ public com.google.protobuf.Value getValue() {
+ return value_ == null ? com.google.protobuf.Value.getDefaultInstance() : value_;
+ }
+
+ /**
+ *
+ *
+ *
+ * The value of the column.
+ *
+ *
+ * .google.protobuf.Value value = 2;
+ */
+ @java.lang.Override
+ public com.google.protobuf.ValueOrBuilder getValueOrBuilder() {
+ return value_ == null ? com.google.protobuf.Value.getDefaultInstance() : value_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (columnMetadataIndex_ != 0) {
+ output.writeInt32(1, columnMetadataIndex_);
+ }
+ if (((bitField0_ & 0x00000001) != 0)) {
+ output.writeMessage(2, getValue());
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (columnMetadataIndex_ != 0) {
+ size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, columnMetadataIndex_);
+ }
+ if (((bitField0_ & 0x00000001) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getValue());
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue)) {
+ return super.equals(obj);
+ }
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue other =
+ (com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue) obj;
+
+ if (getColumnMetadataIndex() != other.getColumnMetadataIndex()) return false;
+ if (hasValue() != other.hasValue()) return false;
+ if (hasValue()) {
+ if (!getValue().equals(other.getValue())) return false;
+ }
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + COLUMN_METADATA_INDEX_FIELD_NUMBER;
+ hash = (53 * hash) + getColumnMetadataIndex();
+ if (hasValue()) {
+ hash = (37 * hash) + VALUE_FIELD_NUMBER;
+ hash = (53 * hash) + getValue().hashCode();
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue parseFrom(
+ java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue parseFrom(
+ byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue parseFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue
+ parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue
+ parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() {
+ return newBuilder();
+ }
+
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+
+ public static Builder newBuilder(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the value and associated metadata for a particular field of the
+ * [Mod][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod].
+ *
+ *
+ * Protobuf type {@code google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue}
+ */
+ public static final class Builder
+ extends com.google.protobuf.GeneratedMessageV3.Builder
+ implements
+ // @@protoc_insertion_point(builder_implements:google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue)
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValueOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_ModValue_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_ModValue_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.class,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.Builder.class);
+ }
+
+ // Construct using
+ // com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+ getValueFieldBuilder();
+ }
+ }
+
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ bitField0_ = 0;
+ columnMetadataIndex_ = 0;
+ value_ = null;
+ if (valueBuilder_ != null) {
+ valueBuilder_.dispose();
+ valueBuilder_ = null;
+ }
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_ModValue_descriptor;
+ }
+
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue
+ getDefaultInstanceForType() {
+ return com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue
+ .getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue build() {
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue result =
+ buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue buildPartial() {
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue result =
+ new com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue(this);
+ if (bitField0_ != 0) {
+ buildPartial0(result);
+ }
+ onBuilt();
+ return result;
+ }
+
+ private void buildPartial0(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue result) {
+ int from_bitField0_ = bitField0_;
+ if (((from_bitField0_ & 0x00000001) != 0)) {
+ result.columnMetadataIndex_ = columnMetadataIndex_;
+ }
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.value_ = valueBuilder_ == null ? value_ : valueBuilder_.build();
+ to_bitField0_ |= 0x00000001;
+ }
+ result.bitField0_ |= to_bitField0_;
+ }
+
+ @java.lang.Override
+ public Builder clone() {
+ return super.clone();
+ }
+
+ @java.lang.Override
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
+ return super.setField(field, value);
+ }
+
+ @java.lang.Override
+ public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return super.clearField(field);
+ }
+
+ @java.lang.Override
+ public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return super.clearOneof(oneof);
+ }
+
+ @java.lang.Override
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index,
+ java.lang.Object value) {
+ return super.setRepeatedField(field, index, value);
+ }
+
+ @java.lang.Override
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
+ return super.addRepeatedField(field, value);
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue) {
+ return mergeFrom(
+ (com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue) other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue other) {
+ if (other
+ == com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue
+ .getDefaultInstance()) return this;
+ if (other.getColumnMetadataIndex() != 0) {
+ setColumnMetadataIndex(other.getColumnMetadataIndex());
+ }
+ if (other.hasValue()) {
+ mergeValue(other.getValue());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 8:
+ {
+ columnMetadataIndex_ = input.readInt32();
+ bitField0_ |= 0x00000001;
+ break;
+ } // case 8
+ case 18:
+ {
+ input.readMessage(getValueFieldBuilder().getBuilder(), extensionRegistry);
+ bitField0_ |= 0x00000002;
+ break;
+ } // case 18
+ default:
+ {
+ if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+ done = true; // was an endgroup tag
+ }
+ break;
+ } // default:
+ } // switch (tag)
+ } // while (!done)
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.unwrapIOException();
+ } finally {
+ onChanged();
+ } // finally
+ return this;
+ }
+
+ private int bitField0_;
+
+ private int columnMetadataIndex_;
+
+ /**
+ *
+ *
+ *
+ * Index within the repeated
+ * [column_metadata][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.column_metadata]
+ * field, to obtain the column metadata for the column that was modified.
+ *
+ *
+ * int32 column_metadata_index = 1;
+ *
+ * @return The columnMetadataIndex.
+ */
+ @java.lang.Override
+ public int getColumnMetadataIndex() {
+ return columnMetadataIndex_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Index within the repeated
+ * [column_metadata][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.column_metadata]
+ * field, to obtain the column metadata for the column that was modified.
+ *
+ *
+ * int32 column_metadata_index = 1;
+ *
+ * @param value The columnMetadataIndex to set.
+ * @return This builder for chaining.
+ */
+ public Builder setColumnMetadataIndex(int value) {
+
+ columnMetadataIndex_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Index within the repeated
+ * [column_metadata][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.column_metadata]
+ * field, to obtain the column metadata for the column that was modified.
+ *
+ *
+ * int32 column_metadata_index = 1;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearColumnMetadataIndex() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ columnMetadataIndex_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private com.google.protobuf.Value value_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.protobuf.Value,
+ com.google.protobuf.Value.Builder,
+ com.google.protobuf.ValueOrBuilder>
+ valueBuilder_;
+
+ /**
+ *
+ *
+ *
+ * The value of the column.
+ *
+ *
+ * .google.protobuf.Value value = 2;
+ *
+ * @return Whether the value field is set.
+ */
+ public boolean hasValue() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * The value of the column.
+ *
+ *
+ * .google.protobuf.Value value = 2;
+ *
+ * @return The value.
+ */
+ public com.google.protobuf.Value getValue() {
+ if (valueBuilder_ == null) {
+ return value_ == null ? com.google.protobuf.Value.getDefaultInstance() : value_;
+ } else {
+ return valueBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * The value of the column.
+ *
+ *
+ * .google.protobuf.Value value = 2;
+ */
+ public Builder setValue(com.google.protobuf.Value value) {
+ if (valueBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ value_ = value;
+ } else {
+ valueBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * The value of the column.
+ *
+ *
+ * .google.protobuf.Value value = 2;
+ */
+ public Builder setValue(com.google.protobuf.Value.Builder builderForValue) {
+ if (valueBuilder_ == null) {
+ value_ = builderForValue.build();
+ } else {
+ valueBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * The value of the column.
+ *
+ *
+ * .google.protobuf.Value value = 2;
+ */
+ public Builder mergeValue(com.google.protobuf.Value value) {
+ if (valueBuilder_ == null) {
+ if (((bitField0_ & 0x00000002) != 0)
+ && value_ != null
+ && value_ != com.google.protobuf.Value.getDefaultInstance()) {
+ getValueBuilder().mergeFrom(value);
+ } else {
+ value_ = value;
+ }
+ } else {
+ valueBuilder_.mergeFrom(value);
+ }
+ if (value_ != null) {
+ bitField0_ |= 0x00000002;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * The value of the column.
+ *
+ *
+ * .google.protobuf.Value value = 2;
+ */
+ public Builder clearValue() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ value_ = null;
+ if (valueBuilder_ != null) {
+ valueBuilder_.dispose();
+ valueBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * The value of the column.
+ *
+ *
+ * .google.protobuf.Value value = 2;
+ */
+ public com.google.protobuf.Value.Builder getValueBuilder() {
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return getValueFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ *
+ * The value of the column.
+ *
+ *
+ * .google.protobuf.Value value = 2;
+ */
+ public com.google.protobuf.ValueOrBuilder getValueOrBuilder() {
+ if (valueBuilder_ != null) {
+ return valueBuilder_.getMessageOrBuilder();
+ } else {
+ return value_ == null ? com.google.protobuf.Value.getDefaultInstance() : value_;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * The value of the column.
+ *
+ *
+ * .google.protobuf.Value value = 2;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.protobuf.Value,
+ com.google.protobuf.Value.Builder,
+ com.google.protobuf.ValueOrBuilder>
+ getValueFieldBuilder() {
+ if (valueBuilder_ == null) {
+ valueBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.protobuf.Value,
+ com.google.protobuf.Value.Builder,
+ com.google.protobuf.ValueOrBuilder>(
+ getValue(), getParentForChildren(), isClean());
+ value_ = null;
+ }
+ return valueBuilder_;
+ }
+
+ @java.lang.Override
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue)
+ private static final com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue
+ DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue();
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue
+ getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser PARSER =
+ new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public ModValue parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ Builder builder = newBuilder();
+ try {
+ builder.mergeFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(builder.buildPartial());
+ } catch (com.google.protobuf.UninitializedMessageException e) {
+ throw e.asInvalidProtocolBufferException()
+ .setUnfinishedMessage(builder.buildPartial());
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(e)
+ .setUnfinishedMessage(builder.buildPartial());
+ }
+ return builder.buildPartial();
+ }
+ };
+
+ public static com.google.protobuf.Parser parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser getParserForType() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue
+ getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+ }
+
+ public interface ModOrBuilder
+ extends
+ // @@protoc_insertion_point(interface_extends:google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ *
+ *
+ *
+ * Returns the value of the primary key of the modified row.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue keys = 1;
+ *
+ */
+ java.util.List
+ getKeysList();
+
+ /**
+ *
+ *
+ *
+ * Returns the value of the primary key of the modified row.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue keys = 1;
+ *
+ */
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue getKeys(int index);
+
+ /**
+ *
+ *
+ *
+ * Returns the value of the primary key of the modified row.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue keys = 1;
+ *
+ */
+ int getKeysCount();
+
+ /**
+ *
+ *
+ *
+ * Returns the value of the primary key of the modified row.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue keys = 1;
+ *
+ */
+ java.util.List<
+ ? extends com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValueOrBuilder>
+ getKeysOrBuilderList();
+
+ /**
+ *
+ *
+ *
+ * Returns the value of the primary key of the modified row.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue keys = 1;
+ *
+ */
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValueOrBuilder getKeysOrBuilder(
+ int index);
+
+ /**
+ *
+ *
+ *
+ * Returns the old values before the change for the modified columns.
+ * Always empty for
+ * [INSERT][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.INSERT],
+ * or if old values are not being captured specified by
+ * [value_capture_type][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue old_values = 2;
+ *
+ */
+ java.util.List
+ getOldValuesList();
+
+ /**
+ *
+ *
+ *
+ * Returns the old values before the change for the modified columns.
+ * Always empty for
+ * [INSERT][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.INSERT],
+ * or if old values are not being captured specified by
+ * [value_capture_type][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue old_values = 2;
+ *
+ */
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue getOldValues(int index);
+
+ /**
+ *
+ *
+ *
+ * Returns the old values before the change for the modified columns.
+ * Always empty for
+ * [INSERT][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.INSERT],
+ * or if old values are not being captured specified by
+ * [value_capture_type][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue old_values = 2;
+ *
+ */
+ int getOldValuesCount();
+
+ /**
+ *
+ *
+ *
+ * Returns the old values before the change for the modified columns.
+ * Always empty for
+ * [INSERT][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.INSERT],
+ * or if old values are not being captured specified by
+ * [value_capture_type][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue old_values = 2;
+ *
+ */
+ java.util.List<
+ ? extends com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValueOrBuilder>
+ getOldValuesOrBuilderList();
+
+ /**
+ *
+ *
+ *
+ * Returns the old values before the change for the modified columns.
+ * Always empty for
+ * [INSERT][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.INSERT],
+ * or if old values are not being captured specified by
+ * [value_capture_type][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue old_values = 2;
+ *
+ */
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValueOrBuilder
+ getOldValuesOrBuilder(int index);
+
+ /**
+ *
+ *
+ *
+ * Returns the new values after the change for the modified columns.
+ * Always empty for
+ * [DELETE][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.DELETE].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue new_values = 3;
+ *
+ */
+ java.util.List
+ getNewValuesList();
+
+ /**
+ *
+ *
+ *
+ * Returns the new values after the change for the modified columns.
+ * Always empty for
+ * [DELETE][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.DELETE].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue new_values = 3;
+ *
+ */
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue getNewValues(int index);
+
+ /**
+ *
+ *
+ *
+ * Returns the new values after the change for the modified columns.
+ * Always empty for
+ * [DELETE][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.DELETE].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue new_values = 3;
+ *
+ */
+ int getNewValuesCount();
+
+ /**
+ *
+ *
+ *
+ * Returns the new values after the change for the modified columns.
+ * Always empty for
+ * [DELETE][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.DELETE].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue new_values = 3;
+ *
+ */
+ java.util.List<
+ ? extends com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValueOrBuilder>
+ getNewValuesOrBuilderList();
+
+ /**
+ *
+ *
+ *
+ * Returns the new values after the change for the modified columns.
+ * Always empty for
+ * [DELETE][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.DELETE].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue new_values = 3;
+ *
+ */
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValueOrBuilder
+ getNewValuesOrBuilder(int index);
+ }
+
+ /**
+ *
+ *
+ *
+ * A mod describes all data changes in a watched table row.
+ *
+ *
+ * Protobuf type {@code google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod}
+ */
+ public static final class Mod extends com.google.protobuf.GeneratedMessageV3
+ implements
+ // @@protoc_insertion_point(message_implements:google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod)
+ ModOrBuilder {
+ private static final long serialVersionUID = 0L;
+
+ // Use Mod.newBuilder() to construct.
+ private Mod(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
+ super(builder);
+ }
+
+ private Mod() {
+ keys_ = java.util.Collections.emptyList();
+ oldValues_ = java.util.Collections.emptyList();
+ newValues_ = java.util.Collections.emptyList();
+ }
+
+ @java.lang.Override
+ @SuppressWarnings({"unused"})
+ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
+ return new Mod();
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_Mod_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_Mod_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod.class,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod.Builder.class);
+ }
+
+ public static final int KEYS_FIELD_NUMBER = 1;
+
+ @SuppressWarnings("serial")
+ private java.util.List
+ keys_;
+
+ /**
+ *
+ *
+ *
+ * Returns the value of the primary key of the modified row.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue keys = 1;
+ *
+ */
+ @java.lang.Override
+ public java.util.List
+ getKeysList() {
+ return keys_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the value of the primary key of the modified row.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue keys = 1;
+ *
+ */
+ @java.lang.Override
+ public java.util.List<
+ ? extends com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValueOrBuilder>
+ getKeysOrBuilderList() {
+ return keys_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the value of the primary key of the modified row.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue keys = 1;
+ *
+ */
+ @java.lang.Override
+ public int getKeysCount() {
+ return keys_.size();
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the value of the primary key of the modified row.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue keys = 1;
+ *
+ */
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue getKeys(int index) {
+ return keys_.get(index);
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the value of the primary key of the modified row.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue keys = 1;
+ *
+ */
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValueOrBuilder
+ getKeysOrBuilder(int index) {
+ return keys_.get(index);
+ }
+
+ public static final int OLD_VALUES_FIELD_NUMBER = 2;
+
+ @SuppressWarnings("serial")
+ private java.util.List
+ oldValues_;
+
+ /**
+ *
+ *
+ *
+ * Returns the old values before the change for the modified columns.
+ * Always empty for
+ * [INSERT][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.INSERT],
+ * or if old values are not being captured specified by
+ * [value_capture_type][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue old_values = 2;
+ *
+ */
+ @java.lang.Override
+ public java.util.List
+ getOldValuesList() {
+ return oldValues_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the old values before the change for the modified columns.
+ * Always empty for
+ * [INSERT][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.INSERT],
+ * or if old values are not being captured specified by
+ * [value_capture_type][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue old_values = 2;
+ *
+ */
+ @java.lang.Override
+ public java.util.List<
+ ? extends com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValueOrBuilder>
+ getOldValuesOrBuilderList() {
+ return oldValues_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the old values before the change for the modified columns.
+ * Always empty for
+ * [INSERT][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.INSERT],
+ * or if old values are not being captured specified by
+ * [value_capture_type][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue old_values = 2;
+ *
+ */
+ @java.lang.Override
+ public int getOldValuesCount() {
+ return oldValues_.size();
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the old values before the change for the modified columns.
+ * Always empty for
+ * [INSERT][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.INSERT],
+ * or if old values are not being captured specified by
+ * [value_capture_type][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue old_values = 2;
+ *
+ */
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue getOldValues(
+ int index) {
+ return oldValues_.get(index);
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the old values before the change for the modified columns.
+ * Always empty for
+ * [INSERT][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.INSERT],
+ * or if old values are not being captured specified by
+ * [value_capture_type][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue old_values = 2;
+ *
+ */
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValueOrBuilder
+ getOldValuesOrBuilder(int index) {
+ return oldValues_.get(index);
+ }
+
+ public static final int NEW_VALUES_FIELD_NUMBER = 3;
+
+ @SuppressWarnings("serial")
+ private java.util.List
+ newValues_;
+
+ /**
+ *
+ *
+ *
+ * Returns the new values after the change for the modified columns.
+ * Always empty for
+ * [DELETE][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.DELETE].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue new_values = 3;
+ *
+ */
+ @java.lang.Override
+ public java.util.List
+ getNewValuesList() {
+ return newValues_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the new values after the change for the modified columns.
+ * Always empty for
+ * [DELETE][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.DELETE].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue new_values = 3;
+ *
+ */
+ @java.lang.Override
+ public java.util.List<
+ ? extends com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValueOrBuilder>
+ getNewValuesOrBuilderList() {
+ return newValues_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the new values after the change for the modified columns.
+ * Always empty for
+ * [DELETE][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.DELETE].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue new_values = 3;
+ *
+ */
+ @java.lang.Override
+ public int getNewValuesCount() {
+ return newValues_.size();
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the new values after the change for the modified columns.
+ * Always empty for
+ * [DELETE][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.DELETE].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue new_values = 3;
+ *
+ */
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue getNewValues(
+ int index) {
+ return newValues_.get(index);
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the new values after the change for the modified columns.
+ * Always empty for
+ * [DELETE][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.DELETE].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue new_values = 3;
+ *
+ */
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValueOrBuilder
+ getNewValuesOrBuilder(int index) {
+ return newValues_.get(index);
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ for (int i = 0; i < keys_.size(); i++) {
+ output.writeMessage(1, keys_.get(i));
+ }
+ for (int i = 0; i < oldValues_.size(); i++) {
+ output.writeMessage(2, oldValues_.get(i));
+ }
+ for (int i = 0; i < newValues_.size(); i++) {
+ output.writeMessage(3, newValues_.get(i));
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ for (int i = 0; i < keys_.size(); i++) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, keys_.get(i));
+ }
+ for (int i = 0; i < oldValues_.size(); i++) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, oldValues_.get(i));
+ }
+ for (int i = 0; i < newValues_.size(); i++) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, newValues_.get(i));
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod)) {
+ return super.equals(obj);
+ }
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod other =
+ (com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod) obj;
+
+ if (!getKeysList().equals(other.getKeysList())) return false;
+ if (!getOldValuesList().equals(other.getOldValuesList())) return false;
+ if (!getNewValuesList().equals(other.getNewValuesList())) return false;
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (getKeysCount() > 0) {
+ hash = (37 * hash) + KEYS_FIELD_NUMBER;
+ hash = (53 * hash) + getKeysList().hashCode();
+ }
+ if (getOldValuesCount() > 0) {
+ hash = (37 * hash) + OLD_VALUES_FIELD_NUMBER;
+ hash = (53 * hash) + getOldValuesList().hashCode();
+ }
+ if (getNewValuesCount() > 0) {
+ hash = (37 * hash) + NEW_VALUES_FIELD_NUMBER;
+ hash = (53 * hash) + getNewValuesList().hashCode();
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod parseFrom(
+ java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod parseFrom(
+ byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod parseFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod
+ parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod
+ parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() {
+ return newBuilder();
+ }
+
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+
+ public static Builder newBuilder(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ *
+ * A mod describes all data changes in a watched table row.
+ *
+ *
+ * Protobuf type {@code google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod}
+ */
+ public static final class Builder
+ extends com.google.protobuf.GeneratedMessageV3.Builder
+ implements
+ // @@protoc_insertion_point(builder_implements:google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod)
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_Mod_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_Mod_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod.class,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod.Builder.class);
+ }
+
+ // Construct using
+ // com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod.newBuilder()
+ private Builder() {}
+
+ private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ }
+
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ bitField0_ = 0;
+ if (keysBuilder_ == null) {
+ keys_ = java.util.Collections.emptyList();
+ } else {
+ keys_ = null;
+ keysBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000001);
+ if (oldValuesBuilder_ == null) {
+ oldValues_ = java.util.Collections.emptyList();
+ } else {
+ oldValues_ = null;
+ oldValuesBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000002);
+ if (newValuesBuilder_ == null) {
+ newValues_ = java.util.Collections.emptyList();
+ } else {
+ newValues_ = null;
+ newValuesBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000004);
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_Mod_descriptor;
+ }
+
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod
+ getDefaultInstanceForType() {
+ return com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod build() {
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod buildPartial() {
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod result =
+ new com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod(this);
+ buildPartialRepeatedFields(result);
+ if (bitField0_ != 0) {
+ buildPartial0(result);
+ }
+ onBuilt();
+ return result;
+ }
+
+ private void buildPartialRepeatedFields(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod result) {
+ if (keysBuilder_ == null) {
+ if (((bitField0_ & 0x00000001) != 0)) {
+ keys_ = java.util.Collections.unmodifiableList(keys_);
+ bitField0_ = (bitField0_ & ~0x00000001);
+ }
+ result.keys_ = keys_;
+ } else {
+ result.keys_ = keysBuilder_.build();
+ }
+ if (oldValuesBuilder_ == null) {
+ if (((bitField0_ & 0x00000002) != 0)) {
+ oldValues_ = java.util.Collections.unmodifiableList(oldValues_);
+ bitField0_ = (bitField0_ & ~0x00000002);
+ }
+ result.oldValues_ = oldValues_;
+ } else {
+ result.oldValues_ = oldValuesBuilder_.build();
+ }
+ if (newValuesBuilder_ == null) {
+ if (((bitField0_ & 0x00000004) != 0)) {
+ newValues_ = java.util.Collections.unmodifiableList(newValues_);
+ bitField0_ = (bitField0_ & ~0x00000004);
+ }
+ result.newValues_ = newValues_;
+ } else {
+ result.newValues_ = newValuesBuilder_.build();
+ }
+ }
+
+ private void buildPartial0(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod result) {
+ int from_bitField0_ = bitField0_;
+ }
+
+ @java.lang.Override
+ public Builder clone() {
+ return super.clone();
+ }
+
+ @java.lang.Override
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
+ return super.setField(field, value);
+ }
+
+ @java.lang.Override
+ public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return super.clearField(field);
+ }
+
+ @java.lang.Override
+ public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return super.clearOneof(oneof);
+ }
+
+ @java.lang.Override
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index,
+ java.lang.Object value) {
+ return super.setRepeatedField(field, index, value);
+ }
+
+ @java.lang.Override
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
+ return super.addRepeatedField(field, value);
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod) {
+ return mergeFrom((com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod) other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod other) {
+ if (other
+ == com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod.getDefaultInstance())
+ return this;
+ if (keysBuilder_ == null) {
+ if (!other.keys_.isEmpty()) {
+ if (keys_.isEmpty()) {
+ keys_ = other.keys_;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ } else {
+ ensureKeysIsMutable();
+ keys_.addAll(other.keys_);
+ }
+ onChanged();
+ }
+ } else {
+ if (!other.keys_.isEmpty()) {
+ if (keysBuilder_.isEmpty()) {
+ keysBuilder_.dispose();
+ keysBuilder_ = null;
+ keys_ = other.keys_;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ keysBuilder_ =
+ com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
+ ? getKeysFieldBuilder()
+ : null;
+ } else {
+ keysBuilder_.addAllMessages(other.keys_);
+ }
+ }
+ }
+ if (oldValuesBuilder_ == null) {
+ if (!other.oldValues_.isEmpty()) {
+ if (oldValues_.isEmpty()) {
+ oldValues_ = other.oldValues_;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ } else {
+ ensureOldValuesIsMutable();
+ oldValues_.addAll(other.oldValues_);
+ }
+ onChanged();
+ }
+ } else {
+ if (!other.oldValues_.isEmpty()) {
+ if (oldValuesBuilder_.isEmpty()) {
+ oldValuesBuilder_.dispose();
+ oldValuesBuilder_ = null;
+ oldValues_ = other.oldValues_;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ oldValuesBuilder_ =
+ com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
+ ? getOldValuesFieldBuilder()
+ : null;
+ } else {
+ oldValuesBuilder_.addAllMessages(other.oldValues_);
+ }
+ }
+ }
+ if (newValuesBuilder_ == null) {
+ if (!other.newValues_.isEmpty()) {
+ if (newValues_.isEmpty()) {
+ newValues_ = other.newValues_;
+ bitField0_ = (bitField0_ & ~0x00000004);
+ } else {
+ ensureNewValuesIsMutable();
+ newValues_.addAll(other.newValues_);
+ }
+ onChanged();
+ }
+ } else {
+ if (!other.newValues_.isEmpty()) {
+ if (newValuesBuilder_.isEmpty()) {
+ newValuesBuilder_.dispose();
+ newValuesBuilder_ = null;
+ newValues_ = other.newValues_;
+ bitField0_ = (bitField0_ & ~0x00000004);
+ newValuesBuilder_ =
+ com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
+ ? getNewValuesFieldBuilder()
+ : null;
+ } else {
+ newValuesBuilder_.addAllMessages(other.newValues_);
+ }
+ }
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 10:
+ {
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue m =
+ input.readMessage(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue
+ .parser(),
+ extensionRegistry);
+ if (keysBuilder_ == null) {
+ ensureKeysIsMutable();
+ keys_.add(m);
+ } else {
+ keysBuilder_.addMessage(m);
+ }
+ break;
+ } // case 10
+ case 18:
+ {
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue m =
+ input.readMessage(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue
+ .parser(),
+ extensionRegistry);
+ if (oldValuesBuilder_ == null) {
+ ensureOldValuesIsMutable();
+ oldValues_.add(m);
+ } else {
+ oldValuesBuilder_.addMessage(m);
+ }
+ break;
+ } // case 18
+ case 26:
+ {
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue m =
+ input.readMessage(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue
+ .parser(),
+ extensionRegistry);
+ if (newValuesBuilder_ == null) {
+ ensureNewValuesIsMutable();
+ newValues_.add(m);
+ } else {
+ newValuesBuilder_.addMessage(m);
+ }
+ break;
+ } // case 26
+ default:
+ {
+ if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+ done = true; // was an endgroup tag
+ }
+ break;
+ } // default:
+ } // switch (tag)
+ } // while (!done)
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.unwrapIOException();
+ } finally {
+ onChanged();
+ } // finally
+ return this;
+ }
+
+ private int bitField0_;
+
+ private java.util.List
+ keys_ = java.util.Collections.emptyList();
+
+ private void ensureKeysIsMutable() {
+ if (!((bitField0_ & 0x00000001) != 0)) {
+ keys_ =
+ new java.util.ArrayList<
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue>(keys_);
+ bitField0_ |= 0x00000001;
+ }
+ }
+
+ private com.google.protobuf.RepeatedFieldBuilderV3<
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.Builder,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValueOrBuilder>
+ keysBuilder_;
+
+ /**
+ *
+ *
+ *
+ * Returns the value of the primary key of the modified row.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue keys = 1;
+ *
+ */
+ public java.util.List
+ getKeysList() {
+ if (keysBuilder_ == null) {
+ return java.util.Collections.unmodifiableList(keys_);
+ } else {
+ return keysBuilder_.getMessageList();
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the value of the primary key of the modified row.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue keys = 1;
+ *
+ */
+ public int getKeysCount() {
+ if (keysBuilder_ == null) {
+ return keys_.size();
+ } else {
+ return keysBuilder_.getCount();
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the value of the primary key of the modified row.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue keys = 1;
+ *
+ */
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue getKeys(
+ int index) {
+ if (keysBuilder_ == null) {
+ return keys_.get(index);
+ } else {
+ return keysBuilder_.getMessage(index);
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the value of the primary key of the modified row.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue keys = 1;
+ *
+ */
+ public Builder setKeys(
+ int index, com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue value) {
+ if (keysBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureKeysIsMutable();
+ keys_.set(index, value);
+ onChanged();
+ } else {
+ keysBuilder_.setMessage(index, value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the value of the primary key of the modified row.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue keys = 1;
+ *
+ */
+ public Builder setKeys(
+ int index,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.Builder
+ builderForValue) {
+ if (keysBuilder_ == null) {
+ ensureKeysIsMutable();
+ keys_.set(index, builderForValue.build());
+ onChanged();
+ } else {
+ keysBuilder_.setMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the value of the primary key of the modified row.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue keys = 1;
+ *
+ */
+ public Builder addKeys(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue value) {
+ if (keysBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureKeysIsMutable();
+ keys_.add(value);
+ onChanged();
+ } else {
+ keysBuilder_.addMessage(value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the value of the primary key of the modified row.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue keys = 1;
+ *
+ */
+ public Builder addKeys(
+ int index, com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue value) {
+ if (keysBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureKeysIsMutable();
+ keys_.add(index, value);
+ onChanged();
+ } else {
+ keysBuilder_.addMessage(index, value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the value of the primary key of the modified row.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue keys = 1;
+ *
+ */
+ public Builder addKeys(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.Builder
+ builderForValue) {
+ if (keysBuilder_ == null) {
+ ensureKeysIsMutable();
+ keys_.add(builderForValue.build());
+ onChanged();
+ } else {
+ keysBuilder_.addMessage(builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the value of the primary key of the modified row.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue keys = 1;
+ *
+ */
+ public Builder addKeys(
+ int index,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.Builder
+ builderForValue) {
+ if (keysBuilder_ == null) {
+ ensureKeysIsMutable();
+ keys_.add(index, builderForValue.build());
+ onChanged();
+ } else {
+ keysBuilder_.addMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the value of the primary key of the modified row.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue keys = 1;
+ *
+ */
+ public Builder addAllKeys(
+ java.lang.Iterable<
+ ? extends com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue>
+ values) {
+ if (keysBuilder_ == null) {
+ ensureKeysIsMutable();
+ com.google.protobuf.AbstractMessageLite.Builder.addAll(values, keys_);
+ onChanged();
+ } else {
+ keysBuilder_.addAllMessages(values);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the value of the primary key of the modified row.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue keys = 1;
+ *
+ */
+ public Builder clearKeys() {
+ if (keysBuilder_ == null) {
+ keys_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ } else {
+ keysBuilder_.clear();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the value of the primary key of the modified row.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue keys = 1;
+ *
+ */
+ public Builder removeKeys(int index) {
+ if (keysBuilder_ == null) {
+ ensureKeysIsMutable();
+ keys_.remove(index);
+ onChanged();
+ } else {
+ keysBuilder_.remove(index);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the value of the primary key of the modified row.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue keys = 1;
+ *
+ */
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.Builder
+ getKeysBuilder(int index) {
+ return getKeysFieldBuilder().getBuilder(index);
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the value of the primary key of the modified row.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue keys = 1;
+ *
+ */
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValueOrBuilder
+ getKeysOrBuilder(int index) {
+ if (keysBuilder_ == null) {
+ return keys_.get(index);
+ } else {
+ return keysBuilder_.getMessageOrBuilder(index);
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the value of the primary key of the modified row.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue keys = 1;
+ *
+ */
+ public java.util.List<
+ ? extends
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValueOrBuilder>
+ getKeysOrBuilderList() {
+ if (keysBuilder_ != null) {
+ return keysBuilder_.getMessageOrBuilderList();
+ } else {
+ return java.util.Collections.unmodifiableList(keys_);
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the value of the primary key of the modified row.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue keys = 1;
+ *
+ */
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.Builder
+ addKeysBuilder() {
+ return getKeysFieldBuilder()
+ .addBuilder(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue
+ .getDefaultInstance());
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the value of the primary key of the modified row.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue keys = 1;
+ *
+ */
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.Builder
+ addKeysBuilder(int index) {
+ return getKeysFieldBuilder()
+ .addBuilder(
+ index,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue
+ .getDefaultInstance());
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the value of the primary key of the modified row.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue keys = 1;
+ *
+ */
+ public java.util.List<
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.Builder>
+ getKeysBuilderList() {
+ return getKeysFieldBuilder().getBuilderList();
+ }
+
+ private com.google.protobuf.RepeatedFieldBuilderV3<
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.Builder,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValueOrBuilder>
+ getKeysFieldBuilder() {
+ if (keysBuilder_ == null) {
+ keysBuilder_ =
+ new com.google.protobuf.RepeatedFieldBuilderV3<
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.Builder,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValueOrBuilder>(
+ keys_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean());
+ keys_ = null;
+ }
+ return keysBuilder_;
+ }
+
+ private java.util.List
+ oldValues_ = java.util.Collections.emptyList();
+
+ private void ensureOldValuesIsMutable() {
+ if (!((bitField0_ & 0x00000002) != 0)) {
+ oldValues_ =
+ new java.util.ArrayList<
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue>(oldValues_);
+ bitField0_ |= 0x00000002;
+ }
+ }
+
+ private com.google.protobuf.RepeatedFieldBuilderV3<
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.Builder,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValueOrBuilder>
+ oldValuesBuilder_;
+
+ /**
+ *
+ *
+ *
+ * Returns the old values before the change for the modified columns.
+ * Always empty for
+ * [INSERT][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.INSERT],
+ * or if old values are not being captured specified by
+ * [value_capture_type][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue old_values = 2;
+ *
+ */
+ public java.util.List
+ getOldValuesList() {
+ if (oldValuesBuilder_ == null) {
+ return java.util.Collections.unmodifiableList(oldValues_);
+ } else {
+ return oldValuesBuilder_.getMessageList();
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the old values before the change for the modified columns.
+ * Always empty for
+ * [INSERT][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.INSERT],
+ * or if old values are not being captured specified by
+ * [value_capture_type][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue old_values = 2;
+ *
+ */
+ public int getOldValuesCount() {
+ if (oldValuesBuilder_ == null) {
+ return oldValues_.size();
+ } else {
+ return oldValuesBuilder_.getCount();
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the old values before the change for the modified columns.
+ * Always empty for
+ * [INSERT][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.INSERT],
+ * or if old values are not being captured specified by
+ * [value_capture_type][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue old_values = 2;
+ *
+ */
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue getOldValues(
+ int index) {
+ if (oldValuesBuilder_ == null) {
+ return oldValues_.get(index);
+ } else {
+ return oldValuesBuilder_.getMessage(index);
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the old values before the change for the modified columns.
+ * Always empty for
+ * [INSERT][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.INSERT],
+ * or if old values are not being captured specified by
+ * [value_capture_type][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue old_values = 2;
+ *
+ */
+ public Builder setOldValues(
+ int index, com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue value) {
+ if (oldValuesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureOldValuesIsMutable();
+ oldValues_.set(index, value);
+ onChanged();
+ } else {
+ oldValuesBuilder_.setMessage(index, value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the old values before the change for the modified columns.
+ * Always empty for
+ * [INSERT][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.INSERT],
+ * or if old values are not being captured specified by
+ * [value_capture_type][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue old_values = 2;
+ *
+ */
+ public Builder setOldValues(
+ int index,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.Builder
+ builderForValue) {
+ if (oldValuesBuilder_ == null) {
+ ensureOldValuesIsMutable();
+ oldValues_.set(index, builderForValue.build());
+ onChanged();
+ } else {
+ oldValuesBuilder_.setMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the old values before the change for the modified columns.
+ * Always empty for
+ * [INSERT][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.INSERT],
+ * or if old values are not being captured specified by
+ * [value_capture_type][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue old_values = 2;
+ *
+ */
+ public Builder addOldValues(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue value) {
+ if (oldValuesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureOldValuesIsMutable();
+ oldValues_.add(value);
+ onChanged();
+ } else {
+ oldValuesBuilder_.addMessage(value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the old values before the change for the modified columns.
+ * Always empty for
+ * [INSERT][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.INSERT],
+ * or if old values are not being captured specified by
+ * [value_capture_type][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue old_values = 2;
+ *
+ */
+ public Builder addOldValues(
+ int index, com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue value) {
+ if (oldValuesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureOldValuesIsMutable();
+ oldValues_.add(index, value);
+ onChanged();
+ } else {
+ oldValuesBuilder_.addMessage(index, value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the old values before the change for the modified columns.
+ * Always empty for
+ * [INSERT][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.INSERT],
+ * or if old values are not being captured specified by
+ * [value_capture_type][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue old_values = 2;
+ *
+ */
+ public Builder addOldValues(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.Builder
+ builderForValue) {
+ if (oldValuesBuilder_ == null) {
+ ensureOldValuesIsMutable();
+ oldValues_.add(builderForValue.build());
+ onChanged();
+ } else {
+ oldValuesBuilder_.addMessage(builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the old values before the change for the modified columns.
+ * Always empty for
+ * [INSERT][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.INSERT],
+ * or if old values are not being captured specified by
+ * [value_capture_type][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue old_values = 2;
+ *
+ */
+ public Builder addOldValues(
+ int index,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.Builder
+ builderForValue) {
+ if (oldValuesBuilder_ == null) {
+ ensureOldValuesIsMutable();
+ oldValues_.add(index, builderForValue.build());
+ onChanged();
+ } else {
+ oldValuesBuilder_.addMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the old values before the change for the modified columns.
+ * Always empty for
+ * [INSERT][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.INSERT],
+ * or if old values are not being captured specified by
+ * [value_capture_type][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue old_values = 2;
+ *
+ */
+ public Builder addAllOldValues(
+ java.lang.Iterable<
+ ? extends com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue>
+ values) {
+ if (oldValuesBuilder_ == null) {
+ ensureOldValuesIsMutable();
+ com.google.protobuf.AbstractMessageLite.Builder.addAll(values, oldValues_);
+ onChanged();
+ } else {
+ oldValuesBuilder_.addAllMessages(values);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the old values before the change for the modified columns.
+ * Always empty for
+ * [INSERT][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.INSERT],
+ * or if old values are not being captured specified by
+ * [value_capture_type][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue old_values = 2;
+ *
+ */
+ public Builder clearOldValues() {
+ if (oldValuesBuilder_ == null) {
+ oldValues_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ onChanged();
+ } else {
+ oldValuesBuilder_.clear();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the old values before the change for the modified columns.
+ * Always empty for
+ * [INSERT][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.INSERT],
+ * or if old values are not being captured specified by
+ * [value_capture_type][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue old_values = 2;
+ *
+ */
+ public Builder removeOldValues(int index) {
+ if (oldValuesBuilder_ == null) {
+ ensureOldValuesIsMutable();
+ oldValues_.remove(index);
+ onChanged();
+ } else {
+ oldValuesBuilder_.remove(index);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the old values before the change for the modified columns.
+ * Always empty for
+ * [INSERT][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.INSERT],
+ * or if old values are not being captured specified by
+ * [value_capture_type][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue old_values = 2;
+ *
+ */
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.Builder
+ getOldValuesBuilder(int index) {
+ return getOldValuesFieldBuilder().getBuilder(index);
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the old values before the change for the modified columns.
+ * Always empty for
+ * [INSERT][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.INSERT],
+ * or if old values are not being captured specified by
+ * [value_capture_type][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue old_values = 2;
+ *
+ */
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValueOrBuilder
+ getOldValuesOrBuilder(int index) {
+ if (oldValuesBuilder_ == null) {
+ return oldValues_.get(index);
+ } else {
+ return oldValuesBuilder_.getMessageOrBuilder(index);
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the old values before the change for the modified columns.
+ * Always empty for
+ * [INSERT][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.INSERT],
+ * or if old values are not being captured specified by
+ * [value_capture_type][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue old_values = 2;
+ *
+ */
+ public java.util.List<
+ ? extends
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValueOrBuilder>
+ getOldValuesOrBuilderList() {
+ if (oldValuesBuilder_ != null) {
+ return oldValuesBuilder_.getMessageOrBuilderList();
+ } else {
+ return java.util.Collections.unmodifiableList(oldValues_);
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the old values before the change for the modified columns.
+ * Always empty for
+ * [INSERT][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.INSERT],
+ * or if old values are not being captured specified by
+ * [value_capture_type][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue old_values = 2;
+ *
+ */
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.Builder
+ addOldValuesBuilder() {
+ return getOldValuesFieldBuilder()
+ .addBuilder(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue
+ .getDefaultInstance());
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the old values before the change for the modified columns.
+ * Always empty for
+ * [INSERT][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.INSERT],
+ * or if old values are not being captured specified by
+ * [value_capture_type][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue old_values = 2;
+ *
+ */
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.Builder
+ addOldValuesBuilder(int index) {
+ return getOldValuesFieldBuilder()
+ .addBuilder(
+ index,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue
+ .getDefaultInstance());
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the old values before the change for the modified columns.
+ * Always empty for
+ * [INSERT][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.INSERT],
+ * or if old values are not being captured specified by
+ * [value_capture_type][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue old_values = 2;
+ *
+ */
+ public java.util.List<
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.Builder>
+ getOldValuesBuilderList() {
+ return getOldValuesFieldBuilder().getBuilderList();
+ }
+
+ private com.google.protobuf.RepeatedFieldBuilderV3<
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.Builder,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValueOrBuilder>
+ getOldValuesFieldBuilder() {
+ if (oldValuesBuilder_ == null) {
+ oldValuesBuilder_ =
+ new com.google.protobuf.RepeatedFieldBuilderV3<
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.Builder,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValueOrBuilder>(
+ oldValues_,
+ ((bitField0_ & 0x00000002) != 0),
+ getParentForChildren(),
+ isClean());
+ oldValues_ = null;
+ }
+ return oldValuesBuilder_;
+ }
+
+ private java.util.List
+ newValues_ = java.util.Collections.emptyList();
+
+ private void ensureNewValuesIsMutable() {
+ if (!((bitField0_ & 0x00000004) != 0)) {
+ newValues_ =
+ new java.util.ArrayList<
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue>(newValues_);
+ bitField0_ |= 0x00000004;
+ }
+ }
+
+ private com.google.protobuf.RepeatedFieldBuilderV3<
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.Builder,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValueOrBuilder>
+ newValuesBuilder_;
+
+ /**
+ *
+ *
+ *
+ * Returns the new values after the change for the modified columns.
+ * Always empty for
+ * [DELETE][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.DELETE].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue new_values = 3;
+ *
+ */
+ public java.util.List
+ getNewValuesList() {
+ if (newValuesBuilder_ == null) {
+ return java.util.Collections.unmodifiableList(newValues_);
+ } else {
+ return newValuesBuilder_.getMessageList();
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the new values after the change for the modified columns.
+ * Always empty for
+ * [DELETE][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.DELETE].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue new_values = 3;
+ *
+ */
+ public int getNewValuesCount() {
+ if (newValuesBuilder_ == null) {
+ return newValues_.size();
+ } else {
+ return newValuesBuilder_.getCount();
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the new values after the change for the modified columns.
+ * Always empty for
+ * [DELETE][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.DELETE].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue new_values = 3;
+ *
+ */
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue getNewValues(
+ int index) {
+ if (newValuesBuilder_ == null) {
+ return newValues_.get(index);
+ } else {
+ return newValuesBuilder_.getMessage(index);
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the new values after the change for the modified columns.
+ * Always empty for
+ * [DELETE][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.DELETE].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue new_values = 3;
+ *
+ */
+ public Builder setNewValues(
+ int index, com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue value) {
+ if (newValuesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureNewValuesIsMutable();
+ newValues_.set(index, value);
+ onChanged();
+ } else {
+ newValuesBuilder_.setMessage(index, value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the new values after the change for the modified columns.
+ * Always empty for
+ * [DELETE][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.DELETE].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue new_values = 3;
+ *
+ */
+ public Builder setNewValues(
+ int index,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.Builder
+ builderForValue) {
+ if (newValuesBuilder_ == null) {
+ ensureNewValuesIsMutable();
+ newValues_.set(index, builderForValue.build());
+ onChanged();
+ } else {
+ newValuesBuilder_.setMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the new values after the change for the modified columns.
+ * Always empty for
+ * [DELETE][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.DELETE].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue new_values = 3;
+ *
+ */
+ public Builder addNewValues(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue value) {
+ if (newValuesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureNewValuesIsMutable();
+ newValues_.add(value);
+ onChanged();
+ } else {
+ newValuesBuilder_.addMessage(value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the new values after the change for the modified columns.
+ * Always empty for
+ * [DELETE][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.DELETE].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue new_values = 3;
+ *
+ */
+ public Builder addNewValues(
+ int index, com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue value) {
+ if (newValuesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureNewValuesIsMutable();
+ newValues_.add(index, value);
+ onChanged();
+ } else {
+ newValuesBuilder_.addMessage(index, value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the new values after the change for the modified columns.
+ * Always empty for
+ * [DELETE][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.DELETE].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue new_values = 3;
+ *
+ */
+ public Builder addNewValues(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.Builder
+ builderForValue) {
+ if (newValuesBuilder_ == null) {
+ ensureNewValuesIsMutable();
+ newValues_.add(builderForValue.build());
+ onChanged();
+ } else {
+ newValuesBuilder_.addMessage(builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the new values after the change for the modified columns.
+ * Always empty for
+ * [DELETE][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.DELETE].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue new_values = 3;
+ *
+ */
+ public Builder addNewValues(
+ int index,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.Builder
+ builderForValue) {
+ if (newValuesBuilder_ == null) {
+ ensureNewValuesIsMutable();
+ newValues_.add(index, builderForValue.build());
+ onChanged();
+ } else {
+ newValuesBuilder_.addMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the new values after the change for the modified columns.
+ * Always empty for
+ * [DELETE][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.DELETE].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue new_values = 3;
+ *
+ */
+ public Builder addAllNewValues(
+ java.lang.Iterable<
+ ? extends com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue>
+ values) {
+ if (newValuesBuilder_ == null) {
+ ensureNewValuesIsMutable();
+ com.google.protobuf.AbstractMessageLite.Builder.addAll(values, newValues_);
+ onChanged();
+ } else {
+ newValuesBuilder_.addAllMessages(values);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the new values after the change for the modified columns.
+ * Always empty for
+ * [DELETE][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.DELETE].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue new_values = 3;
+ *
+ */
+ public Builder clearNewValues() {
+ if (newValuesBuilder_ == null) {
+ newValues_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000004);
+ onChanged();
+ } else {
+ newValuesBuilder_.clear();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the new values after the change for the modified columns.
+ * Always empty for
+ * [DELETE][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.DELETE].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue new_values = 3;
+ *
+ */
+ public Builder removeNewValues(int index) {
+ if (newValuesBuilder_ == null) {
+ ensureNewValuesIsMutable();
+ newValues_.remove(index);
+ onChanged();
+ } else {
+ newValuesBuilder_.remove(index);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the new values after the change for the modified columns.
+ * Always empty for
+ * [DELETE][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.DELETE].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue new_values = 3;
+ *
+ */
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.Builder
+ getNewValuesBuilder(int index) {
+ return getNewValuesFieldBuilder().getBuilder(index);
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the new values after the change for the modified columns.
+ * Always empty for
+ * [DELETE][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.DELETE].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue new_values = 3;
+ *
+ */
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValueOrBuilder
+ getNewValuesOrBuilder(int index) {
+ if (newValuesBuilder_ == null) {
+ return newValues_.get(index);
+ } else {
+ return newValuesBuilder_.getMessageOrBuilder(index);
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the new values after the change for the modified columns.
+ * Always empty for
+ * [DELETE][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.DELETE].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue new_values = 3;
+ *
+ */
+ public java.util.List<
+ ? extends
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValueOrBuilder>
+ getNewValuesOrBuilderList() {
+ if (newValuesBuilder_ != null) {
+ return newValuesBuilder_.getMessageOrBuilderList();
+ } else {
+ return java.util.Collections.unmodifiableList(newValues_);
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the new values after the change for the modified columns.
+ * Always empty for
+ * [DELETE][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.DELETE].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue new_values = 3;
+ *
+ */
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.Builder
+ addNewValuesBuilder() {
+ return getNewValuesFieldBuilder()
+ .addBuilder(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue
+ .getDefaultInstance());
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the new values after the change for the modified columns.
+ * Always empty for
+ * [DELETE][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.DELETE].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue new_values = 3;
+ *
+ */
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.Builder
+ addNewValuesBuilder(int index) {
+ return getNewValuesFieldBuilder()
+ .addBuilder(
+ index,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue
+ .getDefaultInstance());
+ }
+
+ /**
+ *
+ *
+ *
+ * Returns the new values after the change for the modified columns.
+ * Always empty for
+ * [DELETE][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.DELETE].
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue new_values = 3;
+ *
+ */
+ public java.util.List<
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.Builder>
+ getNewValuesBuilderList() {
+ return getNewValuesFieldBuilder().getBuilderList();
+ }
+
+ private com.google.protobuf.RepeatedFieldBuilderV3<
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.Builder,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValueOrBuilder>
+ getNewValuesFieldBuilder() {
+ if (newValuesBuilder_ == null) {
+ newValuesBuilder_ =
+ new com.google.protobuf.RepeatedFieldBuilderV3<
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValue.Builder,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModValueOrBuilder>(
+ newValues_,
+ ((bitField0_ & 0x00000004) != 0),
+ getParentForChildren(),
+ isClean());
+ newValues_ = null;
+ }
+ return newValuesBuilder_;
+ }
+
+ @java.lang.Override
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod)
+ private static final com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod
+ DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod();
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod
+ getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser PARSER =
+ new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public Mod parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ Builder builder = newBuilder();
+ try {
+ builder.mergeFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(builder.buildPartial());
+ } catch (com.google.protobuf.UninitializedMessageException e) {
+ throw e.asInvalidProtocolBufferException()
+ .setUnfinishedMessage(builder.buildPartial());
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(e)
+ .setUnfinishedMessage(builder.buildPartial());
+ }
+ return builder.buildPartial();
+ }
+ };
+
+ public static com.google.protobuf.Parser parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser getParserForType() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod
+ getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+ }
+
+ private int bitField0_;
+ public static final int COMMIT_TIMESTAMP_FIELD_NUMBER = 1;
+ private com.google.protobuf.Timestamp commitTimestamp_;
+
+ /**
+ *
+ *
+ *
+ * Indicates the timestamp in which the change was committed.
+ * DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp commit_timestamp = 1;
+ *
+ * @return Whether the commitTimestamp field is set.
+ */
+ @java.lang.Override
+ public boolean hasCommitTimestamp() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates the timestamp in which the change was committed.
+ * DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp commit_timestamp = 1;
+ *
+ * @return The commitTimestamp.
+ */
+ @java.lang.Override
+ public com.google.protobuf.Timestamp getCommitTimestamp() {
+ return commitTimestamp_ == null
+ ? com.google.protobuf.Timestamp.getDefaultInstance()
+ : commitTimestamp_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates the timestamp in which the change was committed.
+ * DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp commit_timestamp = 1;
+ */
+ @java.lang.Override
+ public com.google.protobuf.TimestampOrBuilder getCommitTimestampOrBuilder() {
+ return commitTimestamp_ == null
+ ? com.google.protobuf.Timestamp.getDefaultInstance()
+ : commitTimestamp_;
+ }
+
+ public static final int RECORD_SEQUENCE_FIELD_NUMBER = 2;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object recordSequence_ = "";
+
+ /**
+ *
+ *
+ *
+ * Record sequence numbers are unique and monotonically increasing (but not
+ * necessarily contiguous) for a specific timestamp across record
+ * types in the same partition. To guarantee ordered processing, the reader
+ * should process records (of potentially different types) in
+ * record_sequence order for a specific timestamp in the same partition.
+ *
+ * The record sequence number ordering across partitions is only meaningful
+ * in the context of a specific transaction. Record sequence numbers are
+ * unique across partitions for a specific transaction. Sort the
+ * DataChangeRecords for the same
+ * [server_transaction_id][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.server_transaction_id]
+ * by
+ * [record_sequence][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.record_sequence]
+ * to reconstruct the ordering of the changes within the transaction.
+ *
+ *
+ * string record_sequence = 2;
+ *
+ * @return The recordSequence.
+ */
+ @java.lang.Override
+ public java.lang.String getRecordSequence() {
+ java.lang.Object ref = recordSequence_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ recordSequence_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Record sequence numbers are unique and monotonically increasing (but not
+ * necessarily contiguous) for a specific timestamp across record
+ * types in the same partition. To guarantee ordered processing, the reader
+ * should process records (of potentially different types) in
+ * record_sequence order for a specific timestamp in the same partition.
+ *
+ * The record sequence number ordering across partitions is only meaningful
+ * in the context of a specific transaction. Record sequence numbers are
+ * unique across partitions for a specific transaction. Sort the
+ * DataChangeRecords for the same
+ * [server_transaction_id][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.server_transaction_id]
+ * by
+ * [record_sequence][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.record_sequence]
+ * to reconstruct the ordering of the changes within the transaction.
+ *
+ *
+ * string record_sequence = 2;
+ *
+ * @return The bytes for recordSequence.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getRecordSequenceBytes() {
+ java.lang.Object ref = recordSequence_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ recordSequence_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int SERVER_TRANSACTION_ID_FIELD_NUMBER = 3;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object serverTransactionId_ = "";
+
+ /**
+ *
+ *
+ *
+ * Provides a globally unique string that represents the transaction in
+ * which the change was committed. Multiple transactions can have the same
+ * commit timestamp, but each transaction has a unique
+ * server_transaction_id.
+ *
+ *
+ * string server_transaction_id = 3;
+ *
+ * @return The serverTransactionId.
+ */
+ @java.lang.Override
+ public java.lang.String getServerTransactionId() {
+ java.lang.Object ref = serverTransactionId_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ serverTransactionId_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Provides a globally unique string that represents the transaction in
+ * which the change was committed. Multiple transactions can have the same
+ * commit timestamp, but each transaction has a unique
+ * server_transaction_id.
+ *
+ *
+ * string server_transaction_id = 3;
+ *
+ * @return The bytes for serverTransactionId.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getServerTransactionIdBytes() {
+ java.lang.Object ref = serverTransactionId_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ serverTransactionId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int IS_LAST_RECORD_IN_TRANSACTION_IN_PARTITION_FIELD_NUMBER = 4;
+ private boolean isLastRecordInTransactionInPartition_ = false;
+
+ /**
+ *
+ *
+ *
+ * Indicates whether this is the last record for a transaction in the
+ * current partition. Clients can use this field to determine when all
+ * records for a transaction in the current partition have been received.
+ *
+ *
+ * bool is_last_record_in_transaction_in_partition = 4;
+ *
+ * @return The isLastRecordInTransactionInPartition.
+ */
+ @java.lang.Override
+ public boolean getIsLastRecordInTransactionInPartition() {
+ return isLastRecordInTransactionInPartition_;
+ }
+
+ public static final int TABLE_FIELD_NUMBER = 5;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object table_ = "";
+
+ /**
+ *
+ *
+ *
+ * Name of the table affected by the change.
+ *
+ *
+ * string table = 5;
+ *
+ * @return The table.
+ */
+ @java.lang.Override
+ public java.lang.String getTable() {
+ java.lang.Object ref = table_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ table_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Name of the table affected by the change.
+ *
+ *
+ * string table = 5;
+ *
+ * @return The bytes for table.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getTableBytes() {
+ java.lang.Object ref = table_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ table_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int COLUMN_METADATA_FIELD_NUMBER = 6;
+
+ @SuppressWarnings("serial")
+ private java.util.List
+ columnMetadata_;
+
+ /**
+ *
+ *
+ *
+ * Provides metadata describing the columns associated with the
+ * [mods][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.mods] listed
+ * below.
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata column_metadata = 6;
+ *
+ */
+ @java.lang.Override
+ public java.util.List
+ getColumnMetadataList() {
+ return columnMetadata_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Provides metadata describing the columns associated with the
+ * [mods][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.mods] listed
+ * below.
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata column_metadata = 6;
+ *
+ */
+ @java.lang.Override
+ public java.util.List<
+ ? extends
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadataOrBuilder>
+ getColumnMetadataOrBuilderList() {
+ return columnMetadata_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Provides metadata describing the columns associated with the
+ * [mods][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.mods] listed
+ * below.
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata column_metadata = 6;
+ *
+ */
+ @java.lang.Override
+ public int getColumnMetadataCount() {
+ return columnMetadata_.size();
+ }
+
+ /**
+ *
+ *
+ *
+ * Provides metadata describing the columns associated with the
+ * [mods][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.mods] listed
+ * below.
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata column_metadata = 6;
+ *
+ */
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata
+ getColumnMetadata(int index) {
+ return columnMetadata_.get(index);
+ }
+
+ /**
+ *
+ *
+ *
+ * Provides metadata describing the columns associated with the
+ * [mods][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.mods] listed
+ * below.
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata column_metadata = 6;
+ *
+ */
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadataOrBuilder
+ getColumnMetadataOrBuilder(int index) {
+ return columnMetadata_.get(index);
+ }
+
+ public static final int MODS_FIELD_NUMBER = 7;
+
+ @SuppressWarnings("serial")
+ private java.util.List mods_;
+
+ /**
+ *
+ *
+ *
+ * Describes the changes that were made.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod mods = 7;
+ */
+ @java.lang.Override
+ public java.util.List
+ getModsList() {
+ return mods_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Describes the changes that were made.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod mods = 7;
+ */
+ @java.lang.Override
+ public java.util.List<
+ ? extends com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModOrBuilder>
+ getModsOrBuilderList() {
+ return mods_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Describes the changes that were made.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod mods = 7;
+ */
+ @java.lang.Override
+ public int getModsCount() {
+ return mods_.size();
+ }
+
+ /**
+ *
+ *
+ *
+ * Describes the changes that were made.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod mods = 7;
+ */
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod getMods(int index) {
+ return mods_.get(index);
+ }
+
+ /**
+ *
+ *
+ *
+ * Describes the changes that were made.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod mods = 7;
+ */
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModOrBuilder getModsOrBuilder(
+ int index) {
+ return mods_.get(index);
+ }
+
+ public static final int MOD_TYPE_FIELD_NUMBER = 8;
+ private int modType_ = 0;
+
+ /**
+ *
+ *
+ *
+ * Describes the type of change.
+ *
+ *
+ * .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType mod_type = 8;
+ *
+ * @return The enum numeric value on the wire for modType.
+ */
+ @java.lang.Override
+ public int getModTypeValue() {
+ return modType_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Describes the type of change.
+ *
+ *
+ * .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType mod_type = 8;
+ *
+ * @return The modType.
+ */
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType getModType() {
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType result =
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.forNumber(modType_);
+ return result == null
+ ? com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.UNRECOGNIZED
+ : result;
+ }
+
+ public static final int VALUE_CAPTURE_TYPE_FIELD_NUMBER = 9;
+ private int valueCaptureType_ = 0;
+
+ /**
+ *
+ *
+ *
+ * Describes the value capture type that was specified in the change stream
+ * configuration when this change was captured.
+ *
+ *
+ *
+ * .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType value_capture_type = 9;
+ *
+ *
+ * @return The enum numeric value on the wire for valueCaptureType.
+ */
+ @java.lang.Override
+ public int getValueCaptureTypeValue() {
+ return valueCaptureType_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Describes the value capture type that was specified in the change stream
+ * configuration when this change was captured.
+ *
+ *
+ *
+ * .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType value_capture_type = 9;
+ *
+ *
+ * @return The valueCaptureType.
+ */
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType
+ getValueCaptureType() {
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType result =
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType.forNumber(
+ valueCaptureType_);
+ return result == null
+ ? com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType.UNRECOGNIZED
+ : result;
+ }
+
+ public static final int NUMBER_OF_RECORDS_IN_TRANSACTION_FIELD_NUMBER = 10;
+ private int numberOfRecordsInTransaction_ = 0;
+
+ /**
+ *
+ *
+ *
+ * Indicates the number of data change records that are part of this
+ * transaction across all change stream partitions. This value can be used
+ * to assemble all the records associated with a particular transaction.
+ *
+ *
+ * int32 number_of_records_in_transaction = 10;
+ *
+ * @return The numberOfRecordsInTransaction.
+ */
+ @java.lang.Override
+ public int getNumberOfRecordsInTransaction() {
+ return numberOfRecordsInTransaction_;
+ }
+
+ public static final int NUMBER_OF_PARTITIONS_IN_TRANSACTION_FIELD_NUMBER = 11;
+ private int numberOfPartitionsInTransaction_ = 0;
+
+ /**
+ *
+ *
+ *
+ * Indicates the number of partitions that return data change records for
+ * this transaction. This value can be helpful in assembling all records
+ * associated with a particular transaction.
+ *
+ *
+ * int32 number_of_partitions_in_transaction = 11;
+ *
+ * @return The numberOfPartitionsInTransaction.
+ */
+ @java.lang.Override
+ public int getNumberOfPartitionsInTransaction() {
+ return numberOfPartitionsInTransaction_;
+ }
+
+ public static final int TRANSACTION_TAG_FIELD_NUMBER = 12;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object transactionTag_ = "";
+
+ /**
+ *
+ *
+ *
+ * Indicates the transaction tag associated with this transaction.
+ *
+ *
+ * string transaction_tag = 12;
+ *
+ * @return The transactionTag.
+ */
+ @java.lang.Override
+ public java.lang.String getTransactionTag() {
+ java.lang.Object ref = transactionTag_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ transactionTag_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates the transaction tag associated with this transaction.
+ *
+ *
+ * string transaction_tag = 12;
+ *
+ * @return The bytes for transactionTag.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getTransactionTagBytes() {
+ java.lang.Object ref = transactionTag_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ transactionTag_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int IS_SYSTEM_TRANSACTION_FIELD_NUMBER = 13;
+ private boolean isSystemTransaction_ = false;
+
+ /**
+ *
+ *
+ *
+ * Indicates whether the transaction is a system transaction. System
+ * transactions include those issued by time-to-live (TTL), column backfill,
+ * etc.
+ *
+ *
+ * bool is_system_transaction = 13;
+ *
+ * @return The isSystemTransaction.
+ */
+ @java.lang.Override
+ public boolean getIsSystemTransaction() {
+ return isSystemTransaction_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (((bitField0_ & 0x00000001) != 0)) {
+ output.writeMessage(1, getCommitTimestamp());
+ }
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(recordSequence_)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 2, recordSequence_);
+ }
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(serverTransactionId_)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 3, serverTransactionId_);
+ }
+ if (isLastRecordInTransactionInPartition_ != false) {
+ output.writeBool(4, isLastRecordInTransactionInPartition_);
+ }
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(table_)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 5, table_);
+ }
+ for (int i = 0; i < columnMetadata_.size(); i++) {
+ output.writeMessage(6, columnMetadata_.get(i));
+ }
+ for (int i = 0; i < mods_.size(); i++) {
+ output.writeMessage(7, mods_.get(i));
+ }
+ if (modType_
+ != com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.MOD_TYPE_UNSPECIFIED
+ .getNumber()) {
+ output.writeEnum(8, modType_);
+ }
+ if (valueCaptureType_
+ != com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType
+ .VALUE_CAPTURE_TYPE_UNSPECIFIED
+ .getNumber()) {
+ output.writeEnum(9, valueCaptureType_);
+ }
+ if (numberOfRecordsInTransaction_ != 0) {
+ output.writeInt32(10, numberOfRecordsInTransaction_);
+ }
+ if (numberOfPartitionsInTransaction_ != 0) {
+ output.writeInt32(11, numberOfPartitionsInTransaction_);
+ }
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(transactionTag_)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 12, transactionTag_);
+ }
+ if (isSystemTransaction_ != false) {
+ output.writeBool(13, isSystemTransaction_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getCommitTimestamp());
+ }
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(recordSequence_)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, recordSequence_);
+ }
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(serverTransactionId_)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, serverTransactionId_);
+ }
+ if (isLastRecordInTransactionInPartition_ != false) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeBoolSize(
+ 4, isLastRecordInTransactionInPartition_);
+ }
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(table_)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, table_);
+ }
+ for (int i = 0; i < columnMetadata_.size(); i++) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, columnMetadata_.get(i));
+ }
+ for (int i = 0; i < mods_.size(); i++) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, mods_.get(i));
+ }
+ if (modType_
+ != com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.MOD_TYPE_UNSPECIFIED
+ .getNumber()) {
+ size += com.google.protobuf.CodedOutputStream.computeEnumSize(8, modType_);
+ }
+ if (valueCaptureType_
+ != com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType
+ .VALUE_CAPTURE_TYPE_UNSPECIFIED
+ .getNumber()) {
+ size += com.google.protobuf.CodedOutputStream.computeEnumSize(9, valueCaptureType_);
+ }
+ if (numberOfRecordsInTransaction_ != 0) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeInt32Size(
+ 10, numberOfRecordsInTransaction_);
+ }
+ if (numberOfPartitionsInTransaction_ != 0) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeInt32Size(
+ 11, numberOfPartitionsInTransaction_);
+ }
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(transactionTag_)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, transactionTag_);
+ }
+ if (isSystemTransaction_ != false) {
+ size += com.google.protobuf.CodedOutputStream.computeBoolSize(13, isSystemTransaction_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord)) {
+ return super.equals(obj);
+ }
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord other =
+ (com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord) obj;
+
+ if (hasCommitTimestamp() != other.hasCommitTimestamp()) return false;
+ if (hasCommitTimestamp()) {
+ if (!getCommitTimestamp().equals(other.getCommitTimestamp())) return false;
+ }
+ if (!getRecordSequence().equals(other.getRecordSequence())) return false;
+ if (!getServerTransactionId().equals(other.getServerTransactionId())) return false;
+ if (getIsLastRecordInTransactionInPartition()
+ != other.getIsLastRecordInTransactionInPartition()) return false;
+ if (!getTable().equals(other.getTable())) return false;
+ if (!getColumnMetadataList().equals(other.getColumnMetadataList())) return false;
+ if (!getModsList().equals(other.getModsList())) return false;
+ if (modType_ != other.modType_) return false;
+ if (valueCaptureType_ != other.valueCaptureType_) return false;
+ if (getNumberOfRecordsInTransaction() != other.getNumberOfRecordsInTransaction())
+ return false;
+ if (getNumberOfPartitionsInTransaction() != other.getNumberOfPartitionsInTransaction())
+ return false;
+ if (!getTransactionTag().equals(other.getTransactionTag())) return false;
+ if (getIsSystemTransaction() != other.getIsSystemTransaction()) return false;
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (hasCommitTimestamp()) {
+ hash = (37 * hash) + COMMIT_TIMESTAMP_FIELD_NUMBER;
+ hash = (53 * hash) + getCommitTimestamp().hashCode();
+ }
+ hash = (37 * hash) + RECORD_SEQUENCE_FIELD_NUMBER;
+ hash = (53 * hash) + getRecordSequence().hashCode();
+ hash = (37 * hash) + SERVER_TRANSACTION_ID_FIELD_NUMBER;
+ hash = (53 * hash) + getServerTransactionId().hashCode();
+ hash = (37 * hash) + IS_LAST_RECORD_IN_TRANSACTION_IN_PARTITION_FIELD_NUMBER;
+ hash =
+ (53 * hash)
+ + com.google.protobuf.Internal.hashBoolean(getIsLastRecordInTransactionInPartition());
+ hash = (37 * hash) + TABLE_FIELD_NUMBER;
+ hash = (53 * hash) + getTable().hashCode();
+ if (getColumnMetadataCount() > 0) {
+ hash = (37 * hash) + COLUMN_METADATA_FIELD_NUMBER;
+ hash = (53 * hash) + getColumnMetadataList().hashCode();
+ }
+ if (getModsCount() > 0) {
+ hash = (37 * hash) + MODS_FIELD_NUMBER;
+ hash = (53 * hash) + getModsList().hashCode();
+ }
+ hash = (37 * hash) + MOD_TYPE_FIELD_NUMBER;
+ hash = (53 * hash) + modType_;
+ hash = (37 * hash) + VALUE_CAPTURE_TYPE_FIELD_NUMBER;
+ hash = (53 * hash) + valueCaptureType_;
+ hash = (37 * hash) + NUMBER_OF_RECORDS_IN_TRANSACTION_FIELD_NUMBER;
+ hash = (53 * hash) + getNumberOfRecordsInTransaction();
+ hash = (37 * hash) + NUMBER_OF_PARTITIONS_IN_TRANSACTION_FIELD_NUMBER;
+ hash = (53 * hash) + getNumberOfPartitionsInTransaction();
+ hash = (37 * hash) + TRANSACTION_TAG_FIELD_NUMBER;
+ hash = (53 * hash) + getTransactionTag().hashCode();
+ hash = (37 * hash) + IS_SYSTEM_TRANSACTION_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getIsSystemTransaction());
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord parseFrom(
+ java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord parseFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord parseDelimitedFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() {
+ return newBuilder();
+ }
+
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+
+ public static Builder newBuilder(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ *
+ * A data change record contains a set of changes to a table with the same
+ * modification type (insert, update, or delete) committed at the same commit
+ * timestamp in one change stream partition for the same transaction. Multiple
+ * data change records can be returned for the same transaction across
+ * multiple change stream partitions.
+ *
+ *
+ * Protobuf type {@code google.spanner.v1.ChangeStreamRecord.DataChangeRecord}
+ */
+ public static final class Builder
+ extends com.google.protobuf.GeneratedMessageV3.Builder
+ implements
+ // @@protoc_insertion_point(builder_implements:google.spanner.v1.ChangeStreamRecord.DataChangeRecord)
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecordOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.class,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Builder.class);
+ }
+
+ // Construct using com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+ getCommitTimestampFieldBuilder();
+ getColumnMetadataFieldBuilder();
+ getModsFieldBuilder();
+ }
+ }
+
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ bitField0_ = 0;
+ commitTimestamp_ = null;
+ if (commitTimestampBuilder_ != null) {
+ commitTimestampBuilder_.dispose();
+ commitTimestampBuilder_ = null;
+ }
+ recordSequence_ = "";
+ serverTransactionId_ = "";
+ isLastRecordInTransactionInPartition_ = false;
+ table_ = "";
+ if (columnMetadataBuilder_ == null) {
+ columnMetadata_ = java.util.Collections.emptyList();
+ } else {
+ columnMetadata_ = null;
+ columnMetadataBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000020);
+ if (modsBuilder_ == null) {
+ mods_ = java.util.Collections.emptyList();
+ } else {
+ mods_ = null;
+ modsBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000040);
+ modType_ = 0;
+ valueCaptureType_ = 0;
+ numberOfRecordsInTransaction_ = 0;
+ numberOfPartitionsInTransaction_ = 0;
+ transactionTag_ = "";
+ isSystemTransaction_ = false;
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_DataChangeRecord_descriptor;
+ }
+
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord getDefaultInstanceForType() {
+ return com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord build() {
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord buildPartial() {
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord result =
+ new com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord(this);
+ buildPartialRepeatedFields(result);
+ if (bitField0_ != 0) {
+ buildPartial0(result);
+ }
+ onBuilt();
+ return result;
+ }
+
+ private void buildPartialRepeatedFields(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord result) {
+ if (columnMetadataBuilder_ == null) {
+ if (((bitField0_ & 0x00000020) != 0)) {
+ columnMetadata_ = java.util.Collections.unmodifiableList(columnMetadata_);
+ bitField0_ = (bitField0_ & ~0x00000020);
+ }
+ result.columnMetadata_ = columnMetadata_;
+ } else {
+ result.columnMetadata_ = columnMetadataBuilder_.build();
+ }
+ if (modsBuilder_ == null) {
+ if (((bitField0_ & 0x00000040) != 0)) {
+ mods_ = java.util.Collections.unmodifiableList(mods_);
+ bitField0_ = (bitField0_ & ~0x00000040);
+ }
+ result.mods_ = mods_;
+ } else {
+ result.mods_ = modsBuilder_.build();
+ }
+ }
+
+ private void buildPartial0(com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord result) {
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) != 0)) {
+ result.commitTimestamp_ =
+ commitTimestampBuilder_ == null ? commitTimestamp_ : commitTimestampBuilder_.build();
+ to_bitField0_ |= 0x00000001;
+ }
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.recordSequence_ = recordSequence_;
+ }
+ if (((from_bitField0_ & 0x00000004) != 0)) {
+ result.serverTransactionId_ = serverTransactionId_;
+ }
+ if (((from_bitField0_ & 0x00000008) != 0)) {
+ result.isLastRecordInTransactionInPartition_ = isLastRecordInTransactionInPartition_;
+ }
+ if (((from_bitField0_ & 0x00000010) != 0)) {
+ result.table_ = table_;
+ }
+ if (((from_bitField0_ & 0x00000080) != 0)) {
+ result.modType_ = modType_;
+ }
+ if (((from_bitField0_ & 0x00000100) != 0)) {
+ result.valueCaptureType_ = valueCaptureType_;
+ }
+ if (((from_bitField0_ & 0x00000200) != 0)) {
+ result.numberOfRecordsInTransaction_ = numberOfRecordsInTransaction_;
+ }
+ if (((from_bitField0_ & 0x00000400) != 0)) {
+ result.numberOfPartitionsInTransaction_ = numberOfPartitionsInTransaction_;
+ }
+ if (((from_bitField0_ & 0x00000800) != 0)) {
+ result.transactionTag_ = transactionTag_;
+ }
+ if (((from_bitField0_ & 0x00001000) != 0)) {
+ result.isSystemTransaction_ = isSystemTransaction_;
+ }
+ result.bitField0_ |= to_bitField0_;
+ }
+
+ @java.lang.Override
+ public Builder clone() {
+ return super.clone();
+ }
+
+ @java.lang.Override
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
+ return super.setField(field, value);
+ }
+
+ @java.lang.Override
+ public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return super.clearField(field);
+ }
+
+ @java.lang.Override
+ public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return super.clearOneof(oneof);
+ }
+
+ @java.lang.Override
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index,
+ java.lang.Object value) {
+ return super.setRepeatedField(field, index, value);
+ }
+
+ @java.lang.Override
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
+ return super.addRepeatedField(field, value);
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord) {
+ return mergeFrom((com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord) other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord other) {
+ if (other == com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.getDefaultInstance())
+ return this;
+ if (other.hasCommitTimestamp()) {
+ mergeCommitTimestamp(other.getCommitTimestamp());
+ }
+ if (!other.getRecordSequence().isEmpty()) {
+ recordSequence_ = other.recordSequence_;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ }
+ if (!other.getServerTransactionId().isEmpty()) {
+ serverTransactionId_ = other.serverTransactionId_;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ }
+ if (other.getIsLastRecordInTransactionInPartition() != false) {
+ setIsLastRecordInTransactionInPartition(other.getIsLastRecordInTransactionInPartition());
+ }
+ if (!other.getTable().isEmpty()) {
+ table_ = other.table_;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ }
+ if (columnMetadataBuilder_ == null) {
+ if (!other.columnMetadata_.isEmpty()) {
+ if (columnMetadata_.isEmpty()) {
+ columnMetadata_ = other.columnMetadata_;
+ bitField0_ = (bitField0_ & ~0x00000020);
+ } else {
+ ensureColumnMetadataIsMutable();
+ columnMetadata_.addAll(other.columnMetadata_);
+ }
+ onChanged();
+ }
+ } else {
+ if (!other.columnMetadata_.isEmpty()) {
+ if (columnMetadataBuilder_.isEmpty()) {
+ columnMetadataBuilder_.dispose();
+ columnMetadataBuilder_ = null;
+ columnMetadata_ = other.columnMetadata_;
+ bitField0_ = (bitField0_ & ~0x00000020);
+ columnMetadataBuilder_ =
+ com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
+ ? getColumnMetadataFieldBuilder()
+ : null;
+ } else {
+ columnMetadataBuilder_.addAllMessages(other.columnMetadata_);
+ }
+ }
+ }
+ if (modsBuilder_ == null) {
+ if (!other.mods_.isEmpty()) {
+ if (mods_.isEmpty()) {
+ mods_ = other.mods_;
+ bitField0_ = (bitField0_ & ~0x00000040);
+ } else {
+ ensureModsIsMutable();
+ mods_.addAll(other.mods_);
+ }
+ onChanged();
+ }
+ } else {
+ if (!other.mods_.isEmpty()) {
+ if (modsBuilder_.isEmpty()) {
+ modsBuilder_.dispose();
+ modsBuilder_ = null;
+ mods_ = other.mods_;
+ bitField0_ = (bitField0_ & ~0x00000040);
+ modsBuilder_ =
+ com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
+ ? getModsFieldBuilder()
+ : null;
+ } else {
+ modsBuilder_.addAllMessages(other.mods_);
+ }
+ }
+ }
+ if (other.modType_ != 0) {
+ setModTypeValue(other.getModTypeValue());
+ }
+ if (other.valueCaptureType_ != 0) {
+ setValueCaptureTypeValue(other.getValueCaptureTypeValue());
+ }
+ if (other.getNumberOfRecordsInTransaction() != 0) {
+ setNumberOfRecordsInTransaction(other.getNumberOfRecordsInTransaction());
+ }
+ if (other.getNumberOfPartitionsInTransaction() != 0) {
+ setNumberOfPartitionsInTransaction(other.getNumberOfPartitionsInTransaction());
+ }
+ if (!other.getTransactionTag().isEmpty()) {
+ transactionTag_ = other.transactionTag_;
+ bitField0_ |= 0x00000800;
+ onChanged();
+ }
+ if (other.getIsSystemTransaction() != false) {
+ setIsSystemTransaction(other.getIsSystemTransaction());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 10:
+ {
+ input.readMessage(
+ getCommitTimestampFieldBuilder().getBuilder(), extensionRegistry);
+ bitField0_ |= 0x00000001;
+ break;
+ } // case 10
+ case 18:
+ {
+ recordSequence_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000002;
+ break;
+ } // case 18
+ case 26:
+ {
+ serverTransactionId_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000004;
+ break;
+ } // case 26
+ case 32:
+ {
+ isLastRecordInTransactionInPartition_ = input.readBool();
+ bitField0_ |= 0x00000008;
+ break;
+ } // case 32
+ case 42:
+ {
+ table_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000010;
+ break;
+ } // case 42
+ case 50:
+ {
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata m =
+ input.readMessage(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata
+ .parser(),
+ extensionRegistry);
+ if (columnMetadataBuilder_ == null) {
+ ensureColumnMetadataIsMutable();
+ columnMetadata_.add(m);
+ } else {
+ columnMetadataBuilder_.addMessage(m);
+ }
+ break;
+ } // case 50
+ case 58:
+ {
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod m =
+ input.readMessage(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod.parser(),
+ extensionRegistry);
+ if (modsBuilder_ == null) {
+ ensureModsIsMutable();
+ mods_.add(m);
+ } else {
+ modsBuilder_.addMessage(m);
+ }
+ break;
+ } // case 58
+ case 64:
+ {
+ modType_ = input.readEnum();
+ bitField0_ |= 0x00000080;
+ break;
+ } // case 64
+ case 72:
+ {
+ valueCaptureType_ = input.readEnum();
+ bitField0_ |= 0x00000100;
+ break;
+ } // case 72
+ case 80:
+ {
+ numberOfRecordsInTransaction_ = input.readInt32();
+ bitField0_ |= 0x00000200;
+ break;
+ } // case 80
+ case 88:
+ {
+ numberOfPartitionsInTransaction_ = input.readInt32();
+ bitField0_ |= 0x00000400;
+ break;
+ } // case 88
+ case 98:
+ {
+ transactionTag_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000800;
+ break;
+ } // case 98
+ case 104:
+ {
+ isSystemTransaction_ = input.readBool();
+ bitField0_ |= 0x00001000;
+ break;
+ } // case 104
+ default:
+ {
+ if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+ done = true; // was an endgroup tag
+ }
+ break;
+ } // default:
+ } // switch (tag)
+ } // while (!done)
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.unwrapIOException();
+ } finally {
+ onChanged();
+ } // finally
+ return this;
+ }
+
+ private int bitField0_;
+
+ private com.google.protobuf.Timestamp commitTimestamp_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.protobuf.Timestamp,
+ com.google.protobuf.Timestamp.Builder,
+ com.google.protobuf.TimestampOrBuilder>
+ commitTimestampBuilder_;
+
+ /**
+ *
+ *
+ *
+ * Indicates the timestamp in which the change was committed.
+ * DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp commit_timestamp = 1;
+ *
+ * @return Whether the commitTimestamp field is set.
+ */
+ public boolean hasCommitTimestamp() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates the timestamp in which the change was committed.
+ * DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp commit_timestamp = 1;
+ *
+ * @return The commitTimestamp.
+ */
+ public com.google.protobuf.Timestamp getCommitTimestamp() {
+ if (commitTimestampBuilder_ == null) {
+ return commitTimestamp_ == null
+ ? com.google.protobuf.Timestamp.getDefaultInstance()
+ : commitTimestamp_;
+ } else {
+ return commitTimestampBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates the timestamp in which the change was committed.
+ * DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp commit_timestamp = 1;
+ */
+ public Builder setCommitTimestamp(com.google.protobuf.Timestamp value) {
+ if (commitTimestampBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ commitTimestamp_ = value;
+ } else {
+ commitTimestampBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates the timestamp in which the change was committed.
+ * DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp commit_timestamp = 1;
+ */
+ public Builder setCommitTimestamp(com.google.protobuf.Timestamp.Builder builderForValue) {
+ if (commitTimestampBuilder_ == null) {
+ commitTimestamp_ = builderForValue.build();
+ } else {
+ commitTimestampBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates the timestamp in which the change was committed.
+ * DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp commit_timestamp = 1;
+ */
+ public Builder mergeCommitTimestamp(com.google.protobuf.Timestamp value) {
+ if (commitTimestampBuilder_ == null) {
+ if (((bitField0_ & 0x00000001) != 0)
+ && commitTimestamp_ != null
+ && commitTimestamp_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
+ getCommitTimestampBuilder().mergeFrom(value);
+ } else {
+ commitTimestamp_ = value;
+ }
+ } else {
+ commitTimestampBuilder_.mergeFrom(value);
+ }
+ if (commitTimestamp_ != null) {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates the timestamp in which the change was committed.
+ * DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp commit_timestamp = 1;
+ */
+ public Builder clearCommitTimestamp() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ commitTimestamp_ = null;
+ if (commitTimestampBuilder_ != null) {
+ commitTimestampBuilder_.dispose();
+ commitTimestampBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates the timestamp in which the change was committed.
+ * DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp commit_timestamp = 1;
+ */
+ public com.google.protobuf.Timestamp.Builder getCommitTimestampBuilder() {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return getCommitTimestampFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates the timestamp in which the change was committed.
+ * DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp commit_timestamp = 1;
+ */
+ public com.google.protobuf.TimestampOrBuilder getCommitTimestampOrBuilder() {
+ if (commitTimestampBuilder_ != null) {
+ return commitTimestampBuilder_.getMessageOrBuilder();
+ } else {
+ return commitTimestamp_ == null
+ ? com.google.protobuf.Timestamp.getDefaultInstance()
+ : commitTimestamp_;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates the timestamp in which the change was committed.
+ * DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp commit_timestamp = 1;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.protobuf.Timestamp,
+ com.google.protobuf.Timestamp.Builder,
+ com.google.protobuf.TimestampOrBuilder>
+ getCommitTimestampFieldBuilder() {
+ if (commitTimestampBuilder_ == null) {
+ commitTimestampBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.protobuf.Timestamp,
+ com.google.protobuf.Timestamp.Builder,
+ com.google.protobuf.TimestampOrBuilder>(
+ getCommitTimestamp(), getParentForChildren(), isClean());
+ commitTimestamp_ = null;
+ }
+ return commitTimestampBuilder_;
+ }
+
+ private java.lang.Object recordSequence_ = "";
+
+ /**
+ *
+ *
+ *
+ * Record sequence numbers are unique and monotonically increasing (but not
+ * necessarily contiguous) for a specific timestamp across record
+ * types in the same partition. To guarantee ordered processing, the reader
+ * should process records (of potentially different types) in
+ * record_sequence order for a specific timestamp in the same partition.
+ *
+ * The record sequence number ordering across partitions is only meaningful
+ * in the context of a specific transaction. Record sequence numbers are
+ * unique across partitions for a specific transaction. Sort the
+ * DataChangeRecords for the same
+ * [server_transaction_id][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.server_transaction_id]
+ * by
+ * [record_sequence][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.record_sequence]
+ * to reconstruct the ordering of the changes within the transaction.
+ *
+ *
+ * string record_sequence = 2;
+ *
+ * @return The recordSequence.
+ */
+ public java.lang.String getRecordSequence() {
+ java.lang.Object ref = recordSequence_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ recordSequence_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Record sequence numbers are unique and monotonically increasing (but not
+ * necessarily contiguous) for a specific timestamp across record
+ * types in the same partition. To guarantee ordered processing, the reader
+ * should process records (of potentially different types) in
+ * record_sequence order for a specific timestamp in the same partition.
+ *
+ * The record sequence number ordering across partitions is only meaningful
+ * in the context of a specific transaction. Record sequence numbers are
+ * unique across partitions for a specific transaction. Sort the
+ * DataChangeRecords for the same
+ * [server_transaction_id][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.server_transaction_id]
+ * by
+ * [record_sequence][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.record_sequence]
+ * to reconstruct the ordering of the changes within the transaction.
+ *
+ *
+ * string record_sequence = 2;
+ *
+ * @return The bytes for recordSequence.
+ */
+ public com.google.protobuf.ByteString getRecordSequenceBytes() {
+ java.lang.Object ref = recordSequence_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ recordSequence_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Record sequence numbers are unique and monotonically increasing (but not
+ * necessarily contiguous) for a specific timestamp across record
+ * types in the same partition. To guarantee ordered processing, the reader
+ * should process records (of potentially different types) in
+ * record_sequence order for a specific timestamp in the same partition.
+ *
+ * The record sequence number ordering across partitions is only meaningful
+ * in the context of a specific transaction. Record sequence numbers are
+ * unique across partitions for a specific transaction. Sort the
+ * DataChangeRecords for the same
+ * [server_transaction_id][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.server_transaction_id]
+ * by
+ * [record_sequence][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.record_sequence]
+ * to reconstruct the ordering of the changes within the transaction.
+ *
+ *
+ * string record_sequence = 2;
+ *
+ * @param value The recordSequence to set.
+ * @return This builder for chaining.
+ */
+ public Builder setRecordSequence(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ recordSequence_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Record sequence numbers are unique and monotonically increasing (but not
+ * necessarily contiguous) for a specific timestamp across record
+ * types in the same partition. To guarantee ordered processing, the reader
+ * should process records (of potentially different types) in
+ * record_sequence order for a specific timestamp in the same partition.
+ *
+ * The record sequence number ordering across partitions is only meaningful
+ * in the context of a specific transaction. Record sequence numbers are
+ * unique across partitions for a specific transaction. Sort the
+ * DataChangeRecords for the same
+ * [server_transaction_id][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.server_transaction_id]
+ * by
+ * [record_sequence][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.record_sequence]
+ * to reconstruct the ordering of the changes within the transaction.
+ *
+ *
+ * string record_sequence = 2;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearRecordSequence() {
+ recordSequence_ = getDefaultInstance().getRecordSequence();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Record sequence numbers are unique and monotonically increasing (but not
+ * necessarily contiguous) for a specific timestamp across record
+ * types in the same partition. To guarantee ordered processing, the reader
+ * should process records (of potentially different types) in
+ * record_sequence order for a specific timestamp in the same partition.
+ *
+ * The record sequence number ordering across partitions is only meaningful
+ * in the context of a specific transaction. Record sequence numbers are
+ * unique across partitions for a specific transaction. Sort the
+ * DataChangeRecords for the same
+ * [server_transaction_id][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.server_transaction_id]
+ * by
+ * [record_sequence][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.record_sequence]
+ * to reconstruct the ordering of the changes within the transaction.
+ *
+ *
+ * string record_sequence = 2;
+ *
+ * @param value The bytes for recordSequence to set.
+ * @return This builder for chaining.
+ */
+ public Builder setRecordSequenceBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ recordSequence_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object serverTransactionId_ = "";
+
+ /**
+ *
+ *
+ *
+ * Provides a globally unique string that represents the transaction in
+ * which the change was committed. Multiple transactions can have the same
+ * commit timestamp, but each transaction has a unique
+ * server_transaction_id.
+ *
+ *
+ * string server_transaction_id = 3;
+ *
+ * @return The serverTransactionId.
+ */
+ public java.lang.String getServerTransactionId() {
+ java.lang.Object ref = serverTransactionId_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ serverTransactionId_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Provides a globally unique string that represents the transaction in
+ * which the change was committed. Multiple transactions can have the same
+ * commit timestamp, but each transaction has a unique
+ * server_transaction_id.
+ *
+ *
+ * string server_transaction_id = 3;
+ *
+ * @return The bytes for serverTransactionId.
+ */
+ public com.google.protobuf.ByteString getServerTransactionIdBytes() {
+ java.lang.Object ref = serverTransactionId_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ serverTransactionId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Provides a globally unique string that represents the transaction in
+ * which the change was committed. Multiple transactions can have the same
+ * commit timestamp, but each transaction has a unique
+ * server_transaction_id.
+ *
+ *
+ * string server_transaction_id = 3;
+ *
+ * @param value The serverTransactionId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setServerTransactionId(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ serverTransactionId_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Provides a globally unique string that represents the transaction in
+ * which the change was committed. Multiple transactions can have the same
+ * commit timestamp, but each transaction has a unique
+ * server_transaction_id.
+ *
+ *
+ * string server_transaction_id = 3;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearServerTransactionId() {
+ serverTransactionId_ = getDefaultInstance().getServerTransactionId();
+ bitField0_ = (bitField0_ & ~0x00000004);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Provides a globally unique string that represents the transaction in
+ * which the change was committed. Multiple transactions can have the same
+ * commit timestamp, but each transaction has a unique
+ * server_transaction_id.
+ *
+ *
+ * string server_transaction_id = 3;
+ *
+ * @param value The bytes for serverTransactionId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setServerTransactionIdBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ serverTransactionId_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ private boolean isLastRecordInTransactionInPartition_;
+
+ /**
+ *
+ *
+ *
+ * Indicates whether this is the last record for a transaction in the
+ * current partition. Clients can use this field to determine when all
+ * records for a transaction in the current partition have been received.
+ *
+ *
+ * bool is_last_record_in_transaction_in_partition = 4;
+ *
+ * @return The isLastRecordInTransactionInPartition.
+ */
+ @java.lang.Override
+ public boolean getIsLastRecordInTransactionInPartition() {
+ return isLastRecordInTransactionInPartition_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates whether this is the last record for a transaction in the
+ * current partition. Clients can use this field to determine when all
+ * records for a transaction in the current partition have been received.
+ *
+ *
+ * bool is_last_record_in_transaction_in_partition = 4;
+ *
+ * @param value The isLastRecordInTransactionInPartition to set.
+ * @return This builder for chaining.
+ */
+ public Builder setIsLastRecordInTransactionInPartition(boolean value) {
+
+ isLastRecordInTransactionInPartition_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates whether this is the last record for a transaction in the
+ * current partition. Clients can use this field to determine when all
+ * records for a transaction in the current partition have been received.
+ *
+ *
+ * bool is_last_record_in_transaction_in_partition = 4;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearIsLastRecordInTransactionInPartition() {
+ bitField0_ = (bitField0_ & ~0x00000008);
+ isLastRecordInTransactionInPartition_ = false;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object table_ = "";
+
+ /**
+ *
+ *
+ *
+ * Name of the table affected by the change.
+ *
+ *
+ * string table = 5;
+ *
+ * @return The table.
+ */
+ public java.lang.String getTable() {
+ java.lang.Object ref = table_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ table_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Name of the table affected by the change.
+ *
+ *
+ * string table = 5;
+ *
+ * @return The bytes for table.
+ */
+ public com.google.protobuf.ByteString getTableBytes() {
+ java.lang.Object ref = table_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ table_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Name of the table affected by the change.
+ *
+ *
+ * string table = 5;
+ *
+ * @param value The table to set.
+ * @return This builder for chaining.
+ */
+ public Builder setTable(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ table_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Name of the table affected by the change.
+ *
+ *
+ * string table = 5;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearTable() {
+ table_ = getDefaultInstance().getTable();
+ bitField0_ = (bitField0_ & ~0x00000010);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Name of the table affected by the change.
+ *
+ *
+ * string table = 5;
+ *
+ * @param value The bytes for table to set.
+ * @return This builder for chaining.
+ */
+ public Builder setTableBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ table_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ private java.util.List<
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata>
+ columnMetadata_ = java.util.Collections.emptyList();
+
+ private void ensureColumnMetadataIsMutable() {
+ if (!((bitField0_ & 0x00000020) != 0)) {
+ columnMetadata_ =
+ new java.util.ArrayList<
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata>(
+ columnMetadata_);
+ bitField0_ |= 0x00000020;
+ }
+ }
+
+ private com.google.protobuf.RepeatedFieldBuilderV3<
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata.Builder,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadataOrBuilder>
+ columnMetadataBuilder_;
+
+ /**
+ *
+ *
+ *
+ * Provides metadata describing the columns associated with the
+ * [mods][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.mods] listed
+ * below.
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata column_metadata = 6;
+ *
+ */
+ public java.util.List<
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata>
+ getColumnMetadataList() {
+ if (columnMetadataBuilder_ == null) {
+ return java.util.Collections.unmodifiableList(columnMetadata_);
+ } else {
+ return columnMetadataBuilder_.getMessageList();
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Provides metadata describing the columns associated with the
+ * [mods][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.mods] listed
+ * below.
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata column_metadata = 6;
+ *
+ */
+ public int getColumnMetadataCount() {
+ if (columnMetadataBuilder_ == null) {
+ return columnMetadata_.size();
+ } else {
+ return columnMetadataBuilder_.getCount();
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Provides metadata describing the columns associated with the
+ * [mods][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.mods] listed
+ * below.
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata column_metadata = 6;
+ *
+ */
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata
+ getColumnMetadata(int index) {
+ if (columnMetadataBuilder_ == null) {
+ return columnMetadata_.get(index);
+ } else {
+ return columnMetadataBuilder_.getMessage(index);
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Provides metadata describing the columns associated with the
+ * [mods][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.mods] listed
+ * below.
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata column_metadata = 6;
+ *
+ */
+ public Builder setColumnMetadata(
+ int index,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata value) {
+ if (columnMetadataBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureColumnMetadataIsMutable();
+ columnMetadata_.set(index, value);
+ onChanged();
+ } else {
+ columnMetadataBuilder_.setMessage(index, value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Provides metadata describing the columns associated with the
+ * [mods][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.mods] listed
+ * below.
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata column_metadata = 6;
+ *
+ */
+ public Builder setColumnMetadata(
+ int index,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata.Builder
+ builderForValue) {
+ if (columnMetadataBuilder_ == null) {
+ ensureColumnMetadataIsMutable();
+ columnMetadata_.set(index, builderForValue.build());
+ onChanged();
+ } else {
+ columnMetadataBuilder_.setMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Provides metadata describing the columns associated with the
+ * [mods][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.mods] listed
+ * below.
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata column_metadata = 6;
+ *
+ */
+ public Builder addColumnMetadata(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata value) {
+ if (columnMetadataBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureColumnMetadataIsMutable();
+ columnMetadata_.add(value);
+ onChanged();
+ } else {
+ columnMetadataBuilder_.addMessage(value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Provides metadata describing the columns associated with the
+ * [mods][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.mods] listed
+ * below.
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata column_metadata = 6;
+ *
+ */
+ public Builder addColumnMetadata(
+ int index,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata value) {
+ if (columnMetadataBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureColumnMetadataIsMutable();
+ columnMetadata_.add(index, value);
+ onChanged();
+ } else {
+ columnMetadataBuilder_.addMessage(index, value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Provides metadata describing the columns associated with the
+ * [mods][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.mods] listed
+ * below.
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata column_metadata = 6;
+ *
+ */
+ public Builder addColumnMetadata(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata.Builder
+ builderForValue) {
+ if (columnMetadataBuilder_ == null) {
+ ensureColumnMetadataIsMutable();
+ columnMetadata_.add(builderForValue.build());
+ onChanged();
+ } else {
+ columnMetadataBuilder_.addMessage(builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Provides metadata describing the columns associated with the
+ * [mods][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.mods] listed
+ * below.
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata column_metadata = 6;
+ *
+ */
+ public Builder addColumnMetadata(
+ int index,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata.Builder
+ builderForValue) {
+ if (columnMetadataBuilder_ == null) {
+ ensureColumnMetadataIsMutable();
+ columnMetadata_.add(index, builderForValue.build());
+ onChanged();
+ } else {
+ columnMetadataBuilder_.addMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Provides metadata describing the columns associated with the
+ * [mods][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.mods] listed
+ * below.
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata column_metadata = 6;
+ *
+ */
+ public Builder addAllColumnMetadata(
+ java.lang.Iterable<
+ ? extends
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata>
+ values) {
+ if (columnMetadataBuilder_ == null) {
+ ensureColumnMetadataIsMutable();
+ com.google.protobuf.AbstractMessageLite.Builder.addAll(values, columnMetadata_);
+ onChanged();
+ } else {
+ columnMetadataBuilder_.addAllMessages(values);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Provides metadata describing the columns associated with the
+ * [mods][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.mods] listed
+ * below.
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata column_metadata = 6;
+ *
+ */
+ public Builder clearColumnMetadata() {
+ if (columnMetadataBuilder_ == null) {
+ columnMetadata_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000020);
+ onChanged();
+ } else {
+ columnMetadataBuilder_.clear();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Provides metadata describing the columns associated with the
+ * [mods][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.mods] listed
+ * below.
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata column_metadata = 6;
+ *
+ */
+ public Builder removeColumnMetadata(int index) {
+ if (columnMetadataBuilder_ == null) {
+ ensureColumnMetadataIsMutable();
+ columnMetadata_.remove(index);
+ onChanged();
+ } else {
+ columnMetadataBuilder_.remove(index);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Provides metadata describing the columns associated with the
+ * [mods][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.mods] listed
+ * below.
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata column_metadata = 6;
+ *
+ */
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata.Builder
+ getColumnMetadataBuilder(int index) {
+ return getColumnMetadataFieldBuilder().getBuilder(index);
+ }
+
+ /**
+ *
+ *
+ *
+ * Provides metadata describing the columns associated with the
+ * [mods][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.mods] listed
+ * below.
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata column_metadata = 6;
+ *
+ */
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadataOrBuilder
+ getColumnMetadataOrBuilder(int index) {
+ if (columnMetadataBuilder_ == null) {
+ return columnMetadata_.get(index);
+ } else {
+ return columnMetadataBuilder_.getMessageOrBuilder(index);
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Provides metadata describing the columns associated with the
+ * [mods][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.mods] listed
+ * below.
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata column_metadata = 6;
+ *
+ */
+ public java.util.List<
+ ? extends
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadataOrBuilder>
+ getColumnMetadataOrBuilderList() {
+ if (columnMetadataBuilder_ != null) {
+ return columnMetadataBuilder_.getMessageOrBuilderList();
+ } else {
+ return java.util.Collections.unmodifiableList(columnMetadata_);
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Provides metadata describing the columns associated with the
+ * [mods][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.mods] listed
+ * below.
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata column_metadata = 6;
+ *
+ */
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata.Builder
+ addColumnMetadataBuilder() {
+ return getColumnMetadataFieldBuilder()
+ .addBuilder(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata
+ .getDefaultInstance());
+ }
+
+ /**
+ *
+ *
+ *
+ * Provides metadata describing the columns associated with the
+ * [mods][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.mods] listed
+ * below.
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata column_metadata = 6;
+ *
+ */
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata.Builder
+ addColumnMetadataBuilder(int index) {
+ return getColumnMetadataFieldBuilder()
+ .addBuilder(
+ index,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata
+ .getDefaultInstance());
+ }
+
+ /**
+ *
+ *
+ *
+ * Provides metadata describing the columns associated with the
+ * [mods][google.spanner.v1.ChangeStreamRecord.DataChangeRecord.mods] listed
+ * below.
+ *
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata column_metadata = 6;
+ *
+ */
+ public java.util.List<
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata.Builder>
+ getColumnMetadataBuilderList() {
+ return getColumnMetadataFieldBuilder().getBuilderList();
+ }
+
+ private com.google.protobuf.RepeatedFieldBuilderV3<
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata.Builder,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadataOrBuilder>
+ getColumnMetadataFieldBuilder() {
+ if (columnMetadataBuilder_ == null) {
+ columnMetadataBuilder_ =
+ new com.google.protobuf.RepeatedFieldBuilderV3<
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ColumnMetadata.Builder,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord
+ .ColumnMetadataOrBuilder>(
+ columnMetadata_,
+ ((bitField0_ & 0x00000020) != 0),
+ getParentForChildren(),
+ isClean());
+ columnMetadata_ = null;
+ }
+ return columnMetadataBuilder_;
+ }
+
+ private java.util.List mods_ =
+ java.util.Collections.emptyList();
+
+ private void ensureModsIsMutable() {
+ if (!((bitField0_ & 0x00000040) != 0)) {
+ mods_ =
+ new java.util.ArrayList<
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod>(mods_);
+ bitField0_ |= 0x00000040;
+ }
+ }
+
+ private com.google.protobuf.RepeatedFieldBuilderV3<
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod.Builder,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModOrBuilder>
+ modsBuilder_;
+
+ /**
+ *
+ *
+ *
+ * Describes the changes that were made.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod mods = 7;
+ */
+ public java.util.List
+ getModsList() {
+ if (modsBuilder_ == null) {
+ return java.util.Collections.unmodifiableList(mods_);
+ } else {
+ return modsBuilder_.getMessageList();
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Describes the changes that were made.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod mods = 7;
+ */
+ public int getModsCount() {
+ if (modsBuilder_ == null) {
+ return mods_.size();
+ } else {
+ return modsBuilder_.getCount();
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Describes the changes that were made.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod mods = 7;
+ */
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod getMods(int index) {
+ if (modsBuilder_ == null) {
+ return mods_.get(index);
+ } else {
+ return modsBuilder_.getMessage(index);
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Describes the changes that were made.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod mods = 7;
+ */
+ public Builder setMods(
+ int index, com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod value) {
+ if (modsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureModsIsMutable();
+ mods_.set(index, value);
+ onChanged();
+ } else {
+ modsBuilder_.setMessage(index, value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Describes the changes that were made.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod mods = 7;
+ */
+ public Builder setMods(
+ int index,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod.Builder builderForValue) {
+ if (modsBuilder_ == null) {
+ ensureModsIsMutable();
+ mods_.set(index, builderForValue.build());
+ onChanged();
+ } else {
+ modsBuilder_.setMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Describes the changes that were made.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod mods = 7;
+ */
+ public Builder addMods(com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod value) {
+ if (modsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureModsIsMutable();
+ mods_.add(value);
+ onChanged();
+ } else {
+ modsBuilder_.addMessage(value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Describes the changes that were made.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod mods = 7;
+ */
+ public Builder addMods(
+ int index, com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod value) {
+ if (modsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureModsIsMutable();
+ mods_.add(index, value);
+ onChanged();
+ } else {
+ modsBuilder_.addMessage(index, value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Describes the changes that were made.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod mods = 7;
+ */
+ public Builder addMods(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod.Builder builderForValue) {
+ if (modsBuilder_ == null) {
+ ensureModsIsMutable();
+ mods_.add(builderForValue.build());
+ onChanged();
+ } else {
+ modsBuilder_.addMessage(builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Describes the changes that were made.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod mods = 7;
+ */
+ public Builder addMods(
+ int index,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod.Builder builderForValue) {
+ if (modsBuilder_ == null) {
+ ensureModsIsMutable();
+ mods_.add(index, builderForValue.build());
+ onChanged();
+ } else {
+ modsBuilder_.addMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Describes the changes that were made.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod mods = 7;
+ */
+ public Builder addAllMods(
+ java.lang.Iterable<
+ ? extends com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod>
+ values) {
+ if (modsBuilder_ == null) {
+ ensureModsIsMutable();
+ com.google.protobuf.AbstractMessageLite.Builder.addAll(values, mods_);
+ onChanged();
+ } else {
+ modsBuilder_.addAllMessages(values);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Describes the changes that were made.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod mods = 7;
+ */
+ public Builder clearMods() {
+ if (modsBuilder_ == null) {
+ mods_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000040);
+ onChanged();
+ } else {
+ modsBuilder_.clear();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Describes the changes that were made.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod mods = 7;
+ */
+ public Builder removeMods(int index) {
+ if (modsBuilder_ == null) {
+ ensureModsIsMutable();
+ mods_.remove(index);
+ onChanged();
+ } else {
+ modsBuilder_.remove(index);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Describes the changes that were made.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod mods = 7;
+ */
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod.Builder getModsBuilder(
+ int index) {
+ return getModsFieldBuilder().getBuilder(index);
+ }
+
+ /**
+ *
+ *
+ *
+ * Describes the changes that were made.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod mods = 7;
+ */
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModOrBuilder
+ getModsOrBuilder(int index) {
+ if (modsBuilder_ == null) {
+ return mods_.get(index);
+ } else {
+ return modsBuilder_.getMessageOrBuilder(index);
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Describes the changes that were made.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod mods = 7;
+ */
+ public java.util.List<
+ ? extends com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModOrBuilder>
+ getModsOrBuilderList() {
+ if (modsBuilder_ != null) {
+ return modsBuilder_.getMessageOrBuilderList();
+ } else {
+ return java.util.Collections.unmodifiableList(mods_);
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Describes the changes that were made.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod mods = 7;
+ */
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod.Builder
+ addModsBuilder() {
+ return getModsFieldBuilder()
+ .addBuilder(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod.getDefaultInstance());
+ }
+
+ /**
+ *
+ *
+ *
+ * Describes the changes that were made.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod mods = 7;
+ */
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod.Builder addModsBuilder(
+ int index) {
+ return getModsFieldBuilder()
+ .addBuilder(
+ index,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod.getDefaultInstance());
+ }
+
+ /**
+ *
+ *
+ *
+ * Describes the changes that were made.
+ *
+ *
+ * repeated .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod mods = 7;
+ */
+ public java.util.List
+ getModsBuilderList() {
+ return getModsFieldBuilder().getBuilderList();
+ }
+
+ private com.google.protobuf.RepeatedFieldBuilderV3<
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod.Builder,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModOrBuilder>
+ getModsFieldBuilder() {
+ if (modsBuilder_ == null) {
+ modsBuilder_ =
+ new com.google.protobuf.RepeatedFieldBuilderV3<
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.Mod.Builder,
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModOrBuilder>(
+ mods_, ((bitField0_ & 0x00000040) != 0), getParentForChildren(), isClean());
+ mods_ = null;
+ }
+ return modsBuilder_;
+ }
+
+ private int modType_ = 0;
+
+ /**
+ *
+ *
+ *
+ * Describes the type of change.
+ *
+ *
+ * .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType mod_type = 8;
+ *
+ * @return The enum numeric value on the wire for modType.
+ */
+ @java.lang.Override
+ public int getModTypeValue() {
+ return modType_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Describes the type of change.
+ *
+ *
+ * .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType mod_type = 8;
+ *
+ * @param value The enum numeric value on the wire for modType to set.
+ * @return This builder for chaining.
+ */
+ public Builder setModTypeValue(int value) {
+ modType_ = value;
+ bitField0_ |= 0x00000080;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Describes the type of change.
+ *
+ *
+ * .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType mod_type = 8;
+ *
+ * @return The modType.
+ */
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType getModType() {
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType result =
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.forNumber(modType_);
+ return result == null
+ ? com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType.UNRECOGNIZED
+ : result;
+ }
+
+ /**
+ *
+ *
+ *
+ * Describes the type of change.
+ *
+ *
+ * .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType mod_type = 8;
+ *
+ * @param value The modType to set.
+ * @return This builder for chaining.
+ */
+ public Builder setModType(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000080;
+ modType_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Describes the type of change.
+ *
+ *
+ * .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ModType mod_type = 8;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearModType() {
+ bitField0_ = (bitField0_ & ~0x00000080);
+ modType_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private int valueCaptureType_ = 0;
+
+ /**
+ *
+ *
+ *
+ * Describes the value capture type that was specified in the change stream
+ * configuration when this change was captured.
+ *
+ *
+ *
+ * .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType value_capture_type = 9;
+ *
+ *
+ * @return The enum numeric value on the wire for valueCaptureType.
+ */
+ @java.lang.Override
+ public int getValueCaptureTypeValue() {
+ return valueCaptureType_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Describes the value capture type that was specified in the change stream
+ * configuration when this change was captured.
+ *
+ *
+ *
+ * .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType value_capture_type = 9;
+ *
+ *
+ * @param value The enum numeric value on the wire for valueCaptureType to set.
+ * @return This builder for chaining.
+ */
+ public Builder setValueCaptureTypeValue(int value) {
+ valueCaptureType_ = value;
+ bitField0_ |= 0x00000100;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Describes the value capture type that was specified in the change stream
+ * configuration when this change was captured.
+ *
+ *
+ *
+ * .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType value_capture_type = 9;
+ *
+ *
+ * @return The valueCaptureType.
+ */
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType
+ getValueCaptureType() {
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType result =
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType.forNumber(
+ valueCaptureType_);
+ return result == null
+ ? com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType
+ .UNRECOGNIZED
+ : result;
+ }
+
+ /**
+ *
+ *
+ *
+ * Describes the value capture type that was specified in the change stream
+ * configuration when this change was captured.
+ *
+ *
+ *
+ * .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType value_capture_type = 9;
+ *
+ *
+ * @param value The valueCaptureType to set.
+ * @return This builder for chaining.
+ */
+ public Builder setValueCaptureType(
+ com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000100;
+ valueCaptureType_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Describes the value capture type that was specified in the change stream
+ * configuration when this change was captured.
+ *
+ *
+ *
+ * .google.spanner.v1.ChangeStreamRecord.DataChangeRecord.ValueCaptureType value_capture_type = 9;
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearValueCaptureType() {
+ bitField0_ = (bitField0_ & ~0x00000100);
+ valueCaptureType_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private int numberOfRecordsInTransaction_;
+
+ /**
+ *
+ *
+ *
+ * Indicates the number of data change records that are part of this
+ * transaction across all change stream partitions. This value can be used
+ * to assemble all the records associated with a particular transaction.
+ *
+ *
+ * int32 number_of_records_in_transaction = 10;
+ *
+ * @return The numberOfRecordsInTransaction.
+ */
+ @java.lang.Override
+ public int getNumberOfRecordsInTransaction() {
+ return numberOfRecordsInTransaction_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates the number of data change records that are part of this
+ * transaction across all change stream partitions. This value can be used
+ * to assemble all the records associated with a particular transaction.
+ *
+ *
+ * int32 number_of_records_in_transaction = 10;
+ *
+ * @param value The numberOfRecordsInTransaction to set.
+ * @return This builder for chaining.
+ */
+ public Builder setNumberOfRecordsInTransaction(int value) {
+
+ numberOfRecordsInTransaction_ = value;
+ bitField0_ |= 0x00000200;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates the number of data change records that are part of this
+ * transaction across all change stream partitions. This value can be used
+ * to assemble all the records associated with a particular transaction.
+ *
+ *
+ * int32 number_of_records_in_transaction = 10;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearNumberOfRecordsInTransaction() {
+ bitField0_ = (bitField0_ & ~0x00000200);
+ numberOfRecordsInTransaction_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private int numberOfPartitionsInTransaction_;
+
+ /**
+ *
+ *
+ *
+ * Indicates the number of partitions that return data change records for
+ * this transaction. This value can be helpful in assembling all records
+ * associated with a particular transaction.
+ *
+ *
+ * int32 number_of_partitions_in_transaction = 11;
+ *
+ * @return The numberOfPartitionsInTransaction.
+ */
+ @java.lang.Override
+ public int getNumberOfPartitionsInTransaction() {
+ return numberOfPartitionsInTransaction_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates the number of partitions that return data change records for
+ * this transaction. This value can be helpful in assembling all records
+ * associated with a particular transaction.
+ *
+ *
+ * int32 number_of_partitions_in_transaction = 11;
+ *
+ * @param value The numberOfPartitionsInTransaction to set.
+ * @return This builder for chaining.
+ */
+ public Builder setNumberOfPartitionsInTransaction(int value) {
+
+ numberOfPartitionsInTransaction_ = value;
+ bitField0_ |= 0x00000400;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates the number of partitions that return data change records for
+ * this transaction. This value can be helpful in assembling all records
+ * associated with a particular transaction.
+ *
+ *
+ * int32 number_of_partitions_in_transaction = 11;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearNumberOfPartitionsInTransaction() {
+ bitField0_ = (bitField0_ & ~0x00000400);
+ numberOfPartitionsInTransaction_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object transactionTag_ = "";
+
+ /**
+ *
+ *
+ *
+ * Indicates the transaction tag associated with this transaction.
+ *
+ *
+ * string transaction_tag = 12;
+ *
+ * @return The transactionTag.
+ */
+ public java.lang.String getTransactionTag() {
+ java.lang.Object ref = transactionTag_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ transactionTag_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates the transaction tag associated with this transaction.
+ *
+ *
+ * string transaction_tag = 12;
+ *
+ * @return The bytes for transactionTag.
+ */
+ public com.google.protobuf.ByteString getTransactionTagBytes() {
+ java.lang.Object ref = transactionTag_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ transactionTag_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates the transaction tag associated with this transaction.
+ *
+ *
+ * string transaction_tag = 12;
+ *
+ * @param value The transactionTag to set.
+ * @return This builder for chaining.
+ */
+ public Builder setTransactionTag(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ transactionTag_ = value;
+ bitField0_ |= 0x00000800;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates the transaction tag associated with this transaction.
+ *
+ *
+ * string transaction_tag = 12;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearTransactionTag() {
+ transactionTag_ = getDefaultInstance().getTransactionTag();
+ bitField0_ = (bitField0_ & ~0x00000800);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates the transaction tag associated with this transaction.
+ *
+ *
+ * string transaction_tag = 12;
+ *
+ * @param value The bytes for transactionTag to set.
+ * @return This builder for chaining.
+ */
+ public Builder setTransactionTagBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ transactionTag_ = value;
+ bitField0_ |= 0x00000800;
+ onChanged();
+ return this;
+ }
+
+ private boolean isSystemTransaction_;
+
+ /**
+ *
+ *
+ *
+ * Indicates whether the transaction is a system transaction. System
+ * transactions include those issued by time-to-live (TTL), column backfill,
+ * etc.
+ *
+ *
+ * bool is_system_transaction = 13;
+ *
+ * @return The isSystemTransaction.
+ */
+ @java.lang.Override
+ public boolean getIsSystemTransaction() {
+ return isSystemTransaction_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates whether the transaction is a system transaction. System
+ * transactions include those issued by time-to-live (TTL), column backfill,
+ * etc.
+ *
+ *
+ * bool is_system_transaction = 13;
+ *
+ * @param value The isSystemTransaction to set.
+ * @return This builder for chaining.
+ */
+ public Builder setIsSystemTransaction(boolean value) {
+
+ isSystemTransaction_ = value;
+ bitField0_ |= 0x00001000;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates whether the transaction is a system transaction. System
+ * transactions include those issued by time-to-live (TTL), column backfill,
+ * etc.
+ *
+ *
+ * bool is_system_transaction = 13;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearIsSystemTransaction() {
+ bitField0_ = (bitField0_ & ~0x00001000);
+ isSystemTransaction_ = false;
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.spanner.v1.ChangeStreamRecord.DataChangeRecord)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.spanner.v1.ChangeStreamRecord.DataChangeRecord)
+ private static final com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord();
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser PARSER =
+ new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public DataChangeRecord parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ Builder builder = newBuilder();
+ try {
+ builder.mergeFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(builder.buildPartial());
+ } catch (com.google.protobuf.UninitializedMessageException e) {
+ throw e.asInvalidProtocolBufferException()
+ .setUnfinishedMessage(builder.buildPartial());
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(e)
+ .setUnfinishedMessage(builder.buildPartial());
+ }
+ return builder.buildPartial();
+ }
+ };
+
+ public static com.google.protobuf.Parser parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser getParserForType() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.DataChangeRecord getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+ }
+
+ public interface HeartbeatRecordOrBuilder
+ extends
+ // @@protoc_insertion_point(interface_extends:google.spanner.v1.ChangeStreamRecord.HeartbeatRecord)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ *
+ *
+ *
+ * Indicates the timestamp at which the query has returned all the records
+ * in the change stream partition with timestamp <= heartbeat timestamp.
+ * The heartbeat timestamp will not be the same as the timestamps of other
+ * record types in the same partition.
+ *
+ *
+ * .google.protobuf.Timestamp timestamp = 1;
+ *
+ * @return Whether the timestamp field is set.
+ */
+ boolean hasTimestamp();
+
+ /**
+ *
+ *
+ *
+ * Indicates the timestamp at which the query has returned all the records
+ * in the change stream partition with timestamp <= heartbeat timestamp.
+ * The heartbeat timestamp will not be the same as the timestamps of other
+ * record types in the same partition.
+ *
+ *
+ * .google.protobuf.Timestamp timestamp = 1;
+ *
+ * @return The timestamp.
+ */
+ com.google.protobuf.Timestamp getTimestamp();
+
+ /**
+ *
+ *
+ *
+ * Indicates the timestamp at which the query has returned all the records
+ * in the change stream partition with timestamp <= heartbeat timestamp.
+ * The heartbeat timestamp will not be the same as the timestamps of other
+ * record types in the same partition.
+ *
+ *
+ * .google.protobuf.Timestamp timestamp = 1;
+ */
+ com.google.protobuf.TimestampOrBuilder getTimestampOrBuilder();
+ }
+
+ /**
+ *
+ *
+ *
+ * A heartbeat record is returned as a progress indicator, when there are no
+ * data changes or any other partition record types in the change stream
+ * partition.
+ *
+ *
+ * Protobuf type {@code google.spanner.v1.ChangeStreamRecord.HeartbeatRecord}
+ */
+ public static final class HeartbeatRecord extends com.google.protobuf.GeneratedMessageV3
+ implements
+ // @@protoc_insertion_point(message_implements:google.spanner.v1.ChangeStreamRecord.HeartbeatRecord)
+ HeartbeatRecordOrBuilder {
+ private static final long serialVersionUID = 0L;
+
+ // Use HeartbeatRecord.newBuilder() to construct.
+ private HeartbeatRecord(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
+ super(builder);
+ }
+
+ private HeartbeatRecord() {}
+
+ @java.lang.Override
+ @SuppressWarnings({"unused"})
+ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
+ return new HeartbeatRecord();
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_HeartbeatRecord_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_HeartbeatRecord_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord.class,
+ com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord.Builder.class);
+ }
+
+ private int bitField0_;
+ public static final int TIMESTAMP_FIELD_NUMBER = 1;
+ private com.google.protobuf.Timestamp timestamp_;
+
+ /**
+ *
+ *
+ *
+ * Indicates the timestamp at which the query has returned all the records
+ * in the change stream partition with timestamp <= heartbeat timestamp.
+ * The heartbeat timestamp will not be the same as the timestamps of other
+ * record types in the same partition.
+ *
+ *
+ * .google.protobuf.Timestamp timestamp = 1;
+ *
+ * @return Whether the timestamp field is set.
+ */
+ @java.lang.Override
+ public boolean hasTimestamp() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates the timestamp at which the query has returned all the records
+ * in the change stream partition with timestamp <= heartbeat timestamp.
+ * The heartbeat timestamp will not be the same as the timestamps of other
+ * record types in the same partition.
+ *
+ *
+ * .google.protobuf.Timestamp timestamp = 1;
+ *
+ * @return The timestamp.
+ */
+ @java.lang.Override
+ public com.google.protobuf.Timestamp getTimestamp() {
+ return timestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : timestamp_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates the timestamp at which the query has returned all the records
+ * in the change stream partition with timestamp <= heartbeat timestamp.
+ * The heartbeat timestamp will not be the same as the timestamps of other
+ * record types in the same partition.
+ *
+ *
+ * .google.protobuf.Timestamp timestamp = 1;
+ */
+ @java.lang.Override
+ public com.google.protobuf.TimestampOrBuilder getTimestampOrBuilder() {
+ return timestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : timestamp_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (((bitField0_ & 0x00000001) != 0)) {
+ output.writeMessage(1, getTimestamp());
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getTimestamp());
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord)) {
+ return super.equals(obj);
+ }
+ com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord other =
+ (com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord) obj;
+
+ if (hasTimestamp() != other.hasTimestamp()) return false;
+ if (hasTimestamp()) {
+ if (!getTimestamp().equals(other.getTimestamp())) return false;
+ }
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (hasTimestamp()) {
+ hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER;
+ hash = (53 * hash) + getTimestamp().hashCode();
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord parseFrom(
+ java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord parseFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord parseDelimitedFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() {
+ return newBuilder();
+ }
+
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+
+ public static Builder newBuilder(
+ com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ *
+ * A heartbeat record is returned as a progress indicator, when there are no
+ * data changes or any other partition record types in the change stream
+ * partition.
+ *
+ *
+ * Protobuf type {@code google.spanner.v1.ChangeStreamRecord.HeartbeatRecord}
+ */
+ public static final class Builder
+ extends com.google.protobuf.GeneratedMessageV3.Builder
+ implements
+ // @@protoc_insertion_point(builder_implements:google.spanner.v1.ChangeStreamRecord.HeartbeatRecord)
+ com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecordOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_HeartbeatRecord_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_HeartbeatRecord_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord.class,
+ com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord.Builder.class);
+ }
+
+ // Construct using com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+ getTimestampFieldBuilder();
+ }
+ }
+
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ bitField0_ = 0;
+ timestamp_ = null;
+ if (timestampBuilder_ != null) {
+ timestampBuilder_.dispose();
+ timestampBuilder_ = null;
+ }
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_HeartbeatRecord_descriptor;
+ }
+
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord getDefaultInstanceForType() {
+ return com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord build() {
+ com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord buildPartial() {
+ com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord result =
+ new com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord(this);
+ if (bitField0_ != 0) {
+ buildPartial0(result);
+ }
+ onBuilt();
+ return result;
+ }
+
+ private void buildPartial0(com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord result) {
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) != 0)) {
+ result.timestamp_ = timestampBuilder_ == null ? timestamp_ : timestampBuilder_.build();
+ to_bitField0_ |= 0x00000001;
+ }
+ result.bitField0_ |= to_bitField0_;
+ }
+
+ @java.lang.Override
+ public Builder clone() {
+ return super.clone();
+ }
+
+ @java.lang.Override
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
+ return super.setField(field, value);
+ }
+
+ @java.lang.Override
+ public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return super.clearField(field);
+ }
+
+ @java.lang.Override
+ public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return super.clearOneof(oneof);
+ }
+
+ @java.lang.Override
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index,
+ java.lang.Object value) {
+ return super.setRepeatedField(field, index, value);
+ }
+
+ @java.lang.Override
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
+ return super.addRepeatedField(field, value);
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord) {
+ return mergeFrom((com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord) other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord other) {
+ if (other == com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord.getDefaultInstance())
+ return this;
+ if (other.hasTimestamp()) {
+ mergeTimestamp(other.getTimestamp());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 10:
+ {
+ input.readMessage(getTimestampFieldBuilder().getBuilder(), extensionRegistry);
+ bitField0_ |= 0x00000001;
+ break;
+ } // case 10
+ default:
+ {
+ if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+ done = true; // was an endgroup tag
+ }
+ break;
+ } // default:
+ } // switch (tag)
+ } // while (!done)
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.unwrapIOException();
+ } finally {
+ onChanged();
+ } // finally
+ return this;
+ }
+
+ private int bitField0_;
+
+ private com.google.protobuf.Timestamp timestamp_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.protobuf.Timestamp,
+ com.google.protobuf.Timestamp.Builder,
+ com.google.protobuf.TimestampOrBuilder>
+ timestampBuilder_;
+
+ /**
+ *
+ *
+ *
+ * Indicates the timestamp at which the query has returned all the records
+ * in the change stream partition with timestamp <= heartbeat timestamp.
+ * The heartbeat timestamp will not be the same as the timestamps of other
+ * record types in the same partition.
+ *
+ *
+ * .google.protobuf.Timestamp timestamp = 1;
+ *
+ * @return Whether the timestamp field is set.
+ */
+ public boolean hasTimestamp() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates the timestamp at which the query has returned all the records
+ * in the change stream partition with timestamp <= heartbeat timestamp.
+ * The heartbeat timestamp will not be the same as the timestamps of other
+ * record types in the same partition.
+ *
+ *
+ * .google.protobuf.Timestamp timestamp = 1;
+ *
+ * @return The timestamp.
+ */
+ public com.google.protobuf.Timestamp getTimestamp() {
+ if (timestampBuilder_ == null) {
+ return timestamp_ == null
+ ? com.google.protobuf.Timestamp.getDefaultInstance()
+ : timestamp_;
+ } else {
+ return timestampBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates the timestamp at which the query has returned all the records
+ * in the change stream partition with timestamp <= heartbeat timestamp.
+ * The heartbeat timestamp will not be the same as the timestamps of other
+ * record types in the same partition.
+ *
+ *
+ * .google.protobuf.Timestamp timestamp = 1;
+ */
+ public Builder setTimestamp(com.google.protobuf.Timestamp value) {
+ if (timestampBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ timestamp_ = value;
+ } else {
+ timestampBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates the timestamp at which the query has returned all the records
+ * in the change stream partition with timestamp <= heartbeat timestamp.
+ * The heartbeat timestamp will not be the same as the timestamps of other
+ * record types in the same partition.
+ *
+ *
+ * .google.protobuf.Timestamp timestamp = 1;
+ */
+ public Builder setTimestamp(com.google.protobuf.Timestamp.Builder builderForValue) {
+ if (timestampBuilder_ == null) {
+ timestamp_ = builderForValue.build();
+ } else {
+ timestampBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates the timestamp at which the query has returned all the records
+ * in the change stream partition with timestamp <= heartbeat timestamp.
+ * The heartbeat timestamp will not be the same as the timestamps of other
+ * record types in the same partition.
+ *
+ *
+ * .google.protobuf.Timestamp timestamp = 1;
+ */
+ public Builder mergeTimestamp(com.google.protobuf.Timestamp value) {
+ if (timestampBuilder_ == null) {
+ if (((bitField0_ & 0x00000001) != 0)
+ && timestamp_ != null
+ && timestamp_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
+ getTimestampBuilder().mergeFrom(value);
+ } else {
+ timestamp_ = value;
+ }
+ } else {
+ timestampBuilder_.mergeFrom(value);
+ }
+ if (timestamp_ != null) {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates the timestamp at which the query has returned all the records
+ * in the change stream partition with timestamp <= heartbeat timestamp.
+ * The heartbeat timestamp will not be the same as the timestamps of other
+ * record types in the same partition.
+ *
+ *
+ * .google.protobuf.Timestamp timestamp = 1;
+ */
+ public Builder clearTimestamp() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ timestamp_ = null;
+ if (timestampBuilder_ != null) {
+ timestampBuilder_.dispose();
+ timestampBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates the timestamp at which the query has returned all the records
+ * in the change stream partition with timestamp <= heartbeat timestamp.
+ * The heartbeat timestamp will not be the same as the timestamps of other
+ * record types in the same partition.
+ *
+ *
+ * .google.protobuf.Timestamp timestamp = 1;
+ */
+ public com.google.protobuf.Timestamp.Builder getTimestampBuilder() {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return getTimestampFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates the timestamp at which the query has returned all the records
+ * in the change stream partition with timestamp <= heartbeat timestamp.
+ * The heartbeat timestamp will not be the same as the timestamps of other
+ * record types in the same partition.
+ *
+ *
+ * .google.protobuf.Timestamp timestamp = 1;
+ */
+ public com.google.protobuf.TimestampOrBuilder getTimestampOrBuilder() {
+ if (timestampBuilder_ != null) {
+ return timestampBuilder_.getMessageOrBuilder();
+ } else {
+ return timestamp_ == null
+ ? com.google.protobuf.Timestamp.getDefaultInstance()
+ : timestamp_;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Indicates the timestamp at which the query has returned all the records
+ * in the change stream partition with timestamp <= heartbeat timestamp.
+ * The heartbeat timestamp will not be the same as the timestamps of other
+ * record types in the same partition.
+ *
+ *
+ * .google.protobuf.Timestamp timestamp = 1;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.protobuf.Timestamp,
+ com.google.protobuf.Timestamp.Builder,
+ com.google.protobuf.TimestampOrBuilder>
+ getTimestampFieldBuilder() {
+ if (timestampBuilder_ == null) {
+ timestampBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.protobuf.Timestamp,
+ com.google.protobuf.Timestamp.Builder,
+ com.google.protobuf.TimestampOrBuilder>(
+ getTimestamp(), getParentForChildren(), isClean());
+ timestamp_ = null;
+ }
+ return timestampBuilder_;
+ }
+
+ @java.lang.Override
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.spanner.v1.ChangeStreamRecord.HeartbeatRecord)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.spanner.v1.ChangeStreamRecord.HeartbeatRecord)
+ private static final com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord();
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser PARSER =
+ new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public HeartbeatRecord parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ Builder builder = newBuilder();
+ try {
+ builder.mergeFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(builder.buildPartial());
+ } catch (com.google.protobuf.UninitializedMessageException e) {
+ throw e.asInvalidProtocolBufferException()
+ .setUnfinishedMessage(builder.buildPartial());
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(e)
+ .setUnfinishedMessage(builder.buildPartial());
+ }
+ return builder.buildPartial();
+ }
+ };
+
+ public static com.google.protobuf.Parser parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser getParserForType() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.HeartbeatRecord getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+ }
+
+ public interface PartitionStartRecordOrBuilder
+ extends
+ // @@protoc_insertion_point(interface_extends:google.spanner.v1.ChangeStreamRecord.PartitionStartRecord)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ *
+ *
+ *
+ * Start timestamp at which the partitions should be queried to return
+ * change stream records with timestamps >= start_timestamp.
+ * DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp start_timestamp = 1;
+ *
+ * @return Whether the startTimestamp field is set.
+ */
+ boolean hasStartTimestamp();
+
+ /**
+ *
+ *
+ *
+ * Start timestamp at which the partitions should be queried to return
+ * change stream records with timestamps >= start_timestamp.
+ * DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp start_timestamp = 1;
+ *
+ * @return The startTimestamp.
+ */
+ com.google.protobuf.Timestamp getStartTimestamp();
+
+ /**
+ *
+ *
+ *
+ * Start timestamp at which the partitions should be queried to return
+ * change stream records with timestamps >= start_timestamp.
+ * DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp start_timestamp = 1;
+ */
+ com.google.protobuf.TimestampOrBuilder getStartTimestampOrBuilder();
+
+ /**
+ *
+ *
+ *
+ * Record sequence numbers are unique and monotonically increasing (but not
+ * necessarily contiguous) for a specific timestamp across record
+ * types in the same partition. To guarantee ordered processing, the reader
+ * should process records (of potentially different types) in
+ * record_sequence order for a specific timestamp in the same partition.
+ *
+ *
+ * string record_sequence = 2;
+ *
+ * @return The recordSequence.
+ */
+ java.lang.String getRecordSequence();
+
+ /**
+ *
+ *
+ *
+ * Record sequence numbers are unique and monotonically increasing (but not
+ * necessarily contiguous) for a specific timestamp across record
+ * types in the same partition. To guarantee ordered processing, the reader
+ * should process records (of potentially different types) in
+ * record_sequence order for a specific timestamp in the same partition.
+ *
+ *
+ * string record_sequence = 2;
+ *
+ * @return The bytes for recordSequence.
+ */
+ com.google.protobuf.ByteString getRecordSequenceBytes();
+
+ /**
+ *
+ *
+ *
+ * Unique partition identifiers to be used in queries.
+ *
+ *
+ * repeated string partition_tokens = 3;
+ *
+ * @return A list containing the partitionTokens.
+ */
+ java.util.List getPartitionTokensList();
+
+ /**
+ *
+ *
+ *
+ * Unique partition identifiers to be used in queries.
+ *
+ *
+ * repeated string partition_tokens = 3;
+ *
+ * @return The count of partitionTokens.
+ */
+ int getPartitionTokensCount();
+
+ /**
+ *
+ *
+ *
+ * Unique partition identifiers to be used in queries.
+ *
+ *
+ * repeated string partition_tokens = 3;
+ *
+ * @param index The index of the element to return.
+ * @return The partitionTokens at the given index.
+ */
+ java.lang.String getPartitionTokens(int index);
+
+ /**
+ *
+ *
+ *
+ * Unique partition identifiers to be used in queries.
+ *
+ *
+ * repeated string partition_tokens = 3;
+ *
+ * @param index The index of the value to return.
+ * @return The bytes of the partitionTokens at the given index.
+ */
+ com.google.protobuf.ByteString getPartitionTokensBytes(int index);
+ }
+
+ /**
+ *
+ *
+ *
+ * A partition start record serves as a notification that the client should
+ * schedule the partitions to be queried. PartitionStartRecord returns
+ * information about one or more partitions.
+ *
+ *
+ * Protobuf type {@code google.spanner.v1.ChangeStreamRecord.PartitionStartRecord}
+ */
+ public static final class PartitionStartRecord extends com.google.protobuf.GeneratedMessageV3
+ implements
+ // @@protoc_insertion_point(message_implements:google.spanner.v1.ChangeStreamRecord.PartitionStartRecord)
+ PartitionStartRecordOrBuilder {
+ private static final long serialVersionUID = 0L;
+
+ // Use PartitionStartRecord.newBuilder() to construct.
+ private PartitionStartRecord(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
+ super(builder);
+ }
+
+ private PartitionStartRecord() {
+ recordSequence_ = "";
+ partitionTokens_ = com.google.protobuf.LazyStringArrayList.emptyList();
+ }
+
+ @java.lang.Override
+ @SuppressWarnings({"unused"})
+ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
+ return new PartitionStartRecord();
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_PartitionStartRecord_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_PartitionStartRecord_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord.class,
+ com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord.Builder.class);
+ }
+
+ private int bitField0_;
+ public static final int START_TIMESTAMP_FIELD_NUMBER = 1;
+ private com.google.protobuf.Timestamp startTimestamp_;
+
+ /**
+ *
+ *
+ *
+ * Start timestamp at which the partitions should be queried to return
+ * change stream records with timestamps >= start_timestamp.
+ * DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp start_timestamp = 1;
+ *
+ * @return Whether the startTimestamp field is set.
+ */
+ @java.lang.Override
+ public boolean hasStartTimestamp() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * Start timestamp at which the partitions should be queried to return
+ * change stream records with timestamps >= start_timestamp.
+ * DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp start_timestamp = 1;
+ *
+ * @return The startTimestamp.
+ */
+ @java.lang.Override
+ public com.google.protobuf.Timestamp getStartTimestamp() {
+ return startTimestamp_ == null
+ ? com.google.protobuf.Timestamp.getDefaultInstance()
+ : startTimestamp_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Start timestamp at which the partitions should be queried to return
+ * change stream records with timestamps >= start_timestamp.
+ * DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp start_timestamp = 1;
+ */
+ @java.lang.Override
+ public com.google.protobuf.TimestampOrBuilder getStartTimestampOrBuilder() {
+ return startTimestamp_ == null
+ ? com.google.protobuf.Timestamp.getDefaultInstance()
+ : startTimestamp_;
+ }
+
+ public static final int RECORD_SEQUENCE_FIELD_NUMBER = 2;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object recordSequence_ = "";
+
+ /**
+ *
+ *
+ *
+ * Record sequence numbers are unique and monotonically increasing (but not
+ * necessarily contiguous) for a specific timestamp across record
+ * types in the same partition. To guarantee ordered processing, the reader
+ * should process records (of potentially different types) in
+ * record_sequence order for a specific timestamp in the same partition.
+ *
+ *
+ * string record_sequence = 2;
+ *
+ * @return The recordSequence.
+ */
+ @java.lang.Override
+ public java.lang.String getRecordSequence() {
+ java.lang.Object ref = recordSequence_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ recordSequence_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Record sequence numbers are unique and monotonically increasing (but not
+ * necessarily contiguous) for a specific timestamp across record
+ * types in the same partition. To guarantee ordered processing, the reader
+ * should process records (of potentially different types) in
+ * record_sequence order for a specific timestamp in the same partition.
+ *
+ *
+ * string record_sequence = 2;
+ *
+ * @return The bytes for recordSequence.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getRecordSequenceBytes() {
+ java.lang.Object ref = recordSequence_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ recordSequence_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PARTITION_TOKENS_FIELD_NUMBER = 3;
+
+ @SuppressWarnings("serial")
+ private com.google.protobuf.LazyStringArrayList partitionTokens_ =
+ com.google.protobuf.LazyStringArrayList.emptyList();
+
+ /**
+ *
+ *
+ *
+ * Unique partition identifiers to be used in queries.
+ *
+ *
+ * repeated string partition_tokens = 3;
+ *
+ * @return A list containing the partitionTokens.
+ */
+ public com.google.protobuf.ProtocolStringList getPartitionTokensList() {
+ return partitionTokens_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Unique partition identifiers to be used in queries.
+ *
+ *
+ * repeated string partition_tokens = 3;
+ *
+ * @return The count of partitionTokens.
+ */
+ public int getPartitionTokensCount() {
+ return partitionTokens_.size();
+ }
+
+ /**
+ *
+ *
+ *
+ * Unique partition identifiers to be used in queries.
+ *
+ *
+ * repeated string partition_tokens = 3;
+ *
+ * @param index The index of the element to return.
+ * @return The partitionTokens at the given index.
+ */
+ public java.lang.String getPartitionTokens(int index) {
+ return partitionTokens_.get(index);
+ }
+
+ /**
+ *
+ *
+ *
+ * Unique partition identifiers to be used in queries.
+ *
+ *
+ * repeated string partition_tokens = 3;
+ *
+ * @param index The index of the value to return.
+ * @return The bytes of the partitionTokens at the given index.
+ */
+ public com.google.protobuf.ByteString getPartitionTokensBytes(int index) {
+ return partitionTokens_.getByteString(index);
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (((bitField0_ & 0x00000001) != 0)) {
+ output.writeMessage(1, getStartTimestamp());
+ }
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(recordSequence_)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 2, recordSequence_);
+ }
+ for (int i = 0; i < partitionTokens_.size(); i++) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 3, partitionTokens_.getRaw(i));
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getStartTimestamp());
+ }
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(recordSequence_)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, recordSequence_);
+ }
+ {
+ int dataSize = 0;
+ for (int i = 0; i < partitionTokens_.size(); i++) {
+ dataSize += computeStringSizeNoTag(partitionTokens_.getRaw(i));
+ }
+ size += dataSize;
+ size += 1 * getPartitionTokensList().size();
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord)) {
+ return super.equals(obj);
+ }
+ com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord other =
+ (com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord) obj;
+
+ if (hasStartTimestamp() != other.hasStartTimestamp()) return false;
+ if (hasStartTimestamp()) {
+ if (!getStartTimestamp().equals(other.getStartTimestamp())) return false;
+ }
+ if (!getRecordSequence().equals(other.getRecordSequence())) return false;
+ if (!getPartitionTokensList().equals(other.getPartitionTokensList())) return false;
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (hasStartTimestamp()) {
+ hash = (37 * hash) + START_TIMESTAMP_FIELD_NUMBER;
+ hash = (53 * hash) + getStartTimestamp().hashCode();
+ }
+ hash = (37 * hash) + RECORD_SEQUENCE_FIELD_NUMBER;
+ hash = (53 * hash) + getRecordSequence().hashCode();
+ if (getPartitionTokensCount() > 0) {
+ hash = (37 * hash) + PARTITION_TOKENS_FIELD_NUMBER;
+ hash = (53 * hash) + getPartitionTokensList().hashCode();
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord parseFrom(
+ java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord parseFrom(
+ byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord parseFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord parseDelimitedFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() {
+ return newBuilder();
+ }
+
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+
+ public static Builder newBuilder(
+ com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ *
+ * A partition start record serves as a notification that the client should
+ * schedule the partitions to be queried. PartitionStartRecord returns
+ * information about one or more partitions.
+ *
+ *
+ * Protobuf type {@code google.spanner.v1.ChangeStreamRecord.PartitionStartRecord}
+ */
+ public static final class Builder
+ extends com.google.protobuf.GeneratedMessageV3.Builder
+ implements
+ // @@protoc_insertion_point(builder_implements:google.spanner.v1.ChangeStreamRecord.PartitionStartRecord)
+ com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecordOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_PartitionStartRecord_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_PartitionStartRecord_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord.class,
+ com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord.Builder.class);
+ }
+
+ // Construct using com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+ getStartTimestampFieldBuilder();
+ }
+ }
+
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ bitField0_ = 0;
+ startTimestamp_ = null;
+ if (startTimestampBuilder_ != null) {
+ startTimestampBuilder_.dispose();
+ startTimestampBuilder_ = null;
+ }
+ recordSequence_ = "";
+ partitionTokens_ = com.google.protobuf.LazyStringArrayList.emptyList();
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_PartitionStartRecord_descriptor;
+ }
+
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord
+ getDefaultInstanceForType() {
+ return com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord build() {
+ com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord buildPartial() {
+ com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord result =
+ new com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord(this);
+ if (bitField0_ != 0) {
+ buildPartial0(result);
+ }
+ onBuilt();
+ return result;
+ }
+
+ private void buildPartial0(
+ com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord result) {
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) != 0)) {
+ result.startTimestamp_ =
+ startTimestampBuilder_ == null ? startTimestamp_ : startTimestampBuilder_.build();
+ to_bitField0_ |= 0x00000001;
+ }
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.recordSequence_ = recordSequence_;
+ }
+ if (((from_bitField0_ & 0x00000004) != 0)) {
+ partitionTokens_.makeImmutable();
+ result.partitionTokens_ = partitionTokens_;
+ }
+ result.bitField0_ |= to_bitField0_;
+ }
+
+ @java.lang.Override
+ public Builder clone() {
+ return super.clone();
+ }
+
+ @java.lang.Override
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
+ return super.setField(field, value);
+ }
+
+ @java.lang.Override
+ public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return super.clearField(field);
+ }
+
+ @java.lang.Override
+ public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return super.clearOneof(oneof);
+ }
+
+ @java.lang.Override
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index,
+ java.lang.Object value) {
+ return super.setRepeatedField(field, index, value);
+ }
+
+ @java.lang.Override
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
+ return super.addRepeatedField(field, value);
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord) {
+ return mergeFrom((com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord) other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(
+ com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord other) {
+ if (other
+ == com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord.getDefaultInstance())
+ return this;
+ if (other.hasStartTimestamp()) {
+ mergeStartTimestamp(other.getStartTimestamp());
+ }
+ if (!other.getRecordSequence().isEmpty()) {
+ recordSequence_ = other.recordSequence_;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ }
+ if (!other.partitionTokens_.isEmpty()) {
+ if (partitionTokens_.isEmpty()) {
+ partitionTokens_ = other.partitionTokens_;
+ bitField0_ |= 0x00000004;
+ } else {
+ ensurePartitionTokensIsMutable();
+ partitionTokens_.addAll(other.partitionTokens_);
+ }
+ onChanged();
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 10:
+ {
+ input.readMessage(
+ getStartTimestampFieldBuilder().getBuilder(), extensionRegistry);
+ bitField0_ |= 0x00000001;
+ break;
+ } // case 10
+ case 18:
+ {
+ recordSequence_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000002;
+ break;
+ } // case 18
+ case 26:
+ {
+ java.lang.String s = input.readStringRequireUtf8();
+ ensurePartitionTokensIsMutable();
+ partitionTokens_.add(s);
+ break;
+ } // case 26
+ default:
+ {
+ if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+ done = true; // was an endgroup tag
+ }
+ break;
+ } // default:
+ } // switch (tag)
+ } // while (!done)
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.unwrapIOException();
+ } finally {
+ onChanged();
+ } // finally
+ return this;
+ }
+
+ private int bitField0_;
+
+ private com.google.protobuf.Timestamp startTimestamp_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.protobuf.Timestamp,
+ com.google.protobuf.Timestamp.Builder,
+ com.google.protobuf.TimestampOrBuilder>
+ startTimestampBuilder_;
+
+ /**
+ *
+ *
+ *
+ * Start timestamp at which the partitions should be queried to return
+ * change stream records with timestamps >= start_timestamp.
+ * DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp start_timestamp = 1;
+ *
+ * @return Whether the startTimestamp field is set.
+ */
+ public boolean hasStartTimestamp() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * Start timestamp at which the partitions should be queried to return
+ * change stream records with timestamps >= start_timestamp.
+ * DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp start_timestamp = 1;
+ *
+ * @return The startTimestamp.
+ */
+ public com.google.protobuf.Timestamp getStartTimestamp() {
+ if (startTimestampBuilder_ == null) {
+ return startTimestamp_ == null
+ ? com.google.protobuf.Timestamp.getDefaultInstance()
+ : startTimestamp_;
+ } else {
+ return startTimestampBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Start timestamp at which the partitions should be queried to return
+ * change stream records with timestamps >= start_timestamp.
+ * DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp start_timestamp = 1;
+ */
+ public Builder setStartTimestamp(com.google.protobuf.Timestamp value) {
+ if (startTimestampBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ startTimestamp_ = value;
+ } else {
+ startTimestampBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Start timestamp at which the partitions should be queried to return
+ * change stream records with timestamps >= start_timestamp.
+ * DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp start_timestamp = 1;
+ */
+ public Builder setStartTimestamp(com.google.protobuf.Timestamp.Builder builderForValue) {
+ if (startTimestampBuilder_ == null) {
+ startTimestamp_ = builderForValue.build();
+ } else {
+ startTimestampBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Start timestamp at which the partitions should be queried to return
+ * change stream records with timestamps >= start_timestamp.
+ * DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp start_timestamp = 1;
+ */
+ public Builder mergeStartTimestamp(com.google.protobuf.Timestamp value) {
+ if (startTimestampBuilder_ == null) {
+ if (((bitField0_ & 0x00000001) != 0)
+ && startTimestamp_ != null
+ && startTimestamp_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
+ getStartTimestampBuilder().mergeFrom(value);
+ } else {
+ startTimestamp_ = value;
+ }
+ } else {
+ startTimestampBuilder_.mergeFrom(value);
+ }
+ if (startTimestamp_ != null) {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Start timestamp at which the partitions should be queried to return
+ * change stream records with timestamps >= start_timestamp.
+ * DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp start_timestamp = 1;
+ */
+ public Builder clearStartTimestamp() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ startTimestamp_ = null;
+ if (startTimestampBuilder_ != null) {
+ startTimestampBuilder_.dispose();
+ startTimestampBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Start timestamp at which the partitions should be queried to return
+ * change stream records with timestamps >= start_timestamp.
+ * DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp start_timestamp = 1;
+ */
+ public com.google.protobuf.Timestamp.Builder getStartTimestampBuilder() {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return getStartTimestampFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ *
+ * Start timestamp at which the partitions should be queried to return
+ * change stream records with timestamps >= start_timestamp.
+ * DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp start_timestamp = 1;
+ */
+ public com.google.protobuf.TimestampOrBuilder getStartTimestampOrBuilder() {
+ if (startTimestampBuilder_ != null) {
+ return startTimestampBuilder_.getMessageOrBuilder();
+ } else {
+ return startTimestamp_ == null
+ ? com.google.protobuf.Timestamp.getDefaultInstance()
+ : startTimestamp_;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Start timestamp at which the partitions should be queried to return
+ * change stream records with timestamps >= start_timestamp.
+ * DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp start_timestamp = 1;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.protobuf.Timestamp,
+ com.google.protobuf.Timestamp.Builder,
+ com.google.protobuf.TimestampOrBuilder>
+ getStartTimestampFieldBuilder() {
+ if (startTimestampBuilder_ == null) {
+ startTimestampBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.protobuf.Timestamp,
+ com.google.protobuf.Timestamp.Builder,
+ com.google.protobuf.TimestampOrBuilder>(
+ getStartTimestamp(), getParentForChildren(), isClean());
+ startTimestamp_ = null;
+ }
+ return startTimestampBuilder_;
+ }
+
+ private java.lang.Object recordSequence_ = "";
+
+ /**
+ *
+ *
+ *
+ * Record sequence numbers are unique and monotonically increasing (but not
+ * necessarily contiguous) for a specific timestamp across record
+ * types in the same partition. To guarantee ordered processing, the reader
+ * should process records (of potentially different types) in
+ * record_sequence order for a specific timestamp in the same partition.
+ *
+ *
+ * string record_sequence = 2;
+ *
+ * @return The recordSequence.
+ */
+ public java.lang.String getRecordSequence() {
+ java.lang.Object ref = recordSequence_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ recordSequence_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Record sequence numbers are unique and monotonically increasing (but not
+ * necessarily contiguous) for a specific timestamp across record
+ * types in the same partition. To guarantee ordered processing, the reader
+ * should process records (of potentially different types) in
+ * record_sequence order for a specific timestamp in the same partition.
+ *
+ *
+ * string record_sequence = 2;
+ *
+ * @return The bytes for recordSequence.
+ */
+ public com.google.protobuf.ByteString getRecordSequenceBytes() {
+ java.lang.Object ref = recordSequence_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ recordSequence_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Record sequence numbers are unique and monotonically increasing (but not
+ * necessarily contiguous) for a specific timestamp across record
+ * types in the same partition. To guarantee ordered processing, the reader
+ * should process records (of potentially different types) in
+ * record_sequence order for a specific timestamp in the same partition.
+ *
+ *
+ * string record_sequence = 2;
+ *
+ * @param value The recordSequence to set.
+ * @return This builder for chaining.
+ */
+ public Builder setRecordSequence(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ recordSequence_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Record sequence numbers are unique and monotonically increasing (but not
+ * necessarily contiguous) for a specific timestamp across record
+ * types in the same partition. To guarantee ordered processing, the reader
+ * should process records (of potentially different types) in
+ * record_sequence order for a specific timestamp in the same partition.
+ *
+ *
+ * string record_sequence = 2;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearRecordSequence() {
+ recordSequence_ = getDefaultInstance().getRecordSequence();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Record sequence numbers are unique and monotonically increasing (but not
+ * necessarily contiguous) for a specific timestamp across record
+ * types in the same partition. To guarantee ordered processing, the reader
+ * should process records (of potentially different types) in
+ * record_sequence order for a specific timestamp in the same partition.
+ *
+ *
+ * string record_sequence = 2;
+ *
+ * @param value The bytes for recordSequence to set.
+ * @return This builder for chaining.
+ */
+ public Builder setRecordSequenceBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ recordSequence_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ private com.google.protobuf.LazyStringArrayList partitionTokens_ =
+ com.google.protobuf.LazyStringArrayList.emptyList();
+
+ private void ensurePartitionTokensIsMutable() {
+ if (!partitionTokens_.isModifiable()) {
+ partitionTokens_ = new com.google.protobuf.LazyStringArrayList(partitionTokens_);
+ }
+ bitField0_ |= 0x00000004;
+ }
+
+ /**
+ *
+ *
+ *
+ * Unique partition identifiers to be used in queries.
+ *
+ *
+ * repeated string partition_tokens = 3;
+ *
+ * @return A list containing the partitionTokens.
+ */
+ public com.google.protobuf.ProtocolStringList getPartitionTokensList() {
+ partitionTokens_.makeImmutable();
+ return partitionTokens_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Unique partition identifiers to be used in queries.
+ *
+ *
+ * repeated string partition_tokens = 3;
+ *
+ * @return The count of partitionTokens.
+ */
+ public int getPartitionTokensCount() {
+ return partitionTokens_.size();
+ }
+
+ /**
+ *
+ *
+ *
+ * Unique partition identifiers to be used in queries.
+ *
+ *
+ * repeated string partition_tokens = 3;
+ *
+ * @param index The index of the element to return.
+ * @return The partitionTokens at the given index.
+ */
+ public java.lang.String getPartitionTokens(int index) {
+ return partitionTokens_.get(index);
+ }
+
+ /**
+ *
+ *
+ *
+ * Unique partition identifiers to be used in queries.
+ *
+ *
+ * repeated string partition_tokens = 3;
+ *
+ * @param index The index of the value to return.
+ * @return The bytes of the partitionTokens at the given index.
+ */
+ public com.google.protobuf.ByteString getPartitionTokensBytes(int index) {
+ return partitionTokens_.getByteString(index);
+ }
+
+ /**
+ *
+ *
+ *
+ * Unique partition identifiers to be used in queries.
+ *
+ *
+ * repeated string partition_tokens = 3;
+ *
+ * @param index The index to set the value at.
+ * @param value The partitionTokens to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPartitionTokens(int index, java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensurePartitionTokensIsMutable();
+ partitionTokens_.set(index, value);
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Unique partition identifiers to be used in queries.
+ *
+ *
+ * repeated string partition_tokens = 3;
+ *
+ * @param value The partitionTokens to add.
+ * @return This builder for chaining.
+ */
+ public Builder addPartitionTokens(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensurePartitionTokensIsMutable();
+ partitionTokens_.add(value);
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Unique partition identifiers to be used in queries.
+ *
+ *
+ * repeated string partition_tokens = 3;
+ *
+ * @param values The partitionTokens to add.
+ * @return This builder for chaining.
+ */
+ public Builder addAllPartitionTokens(java.lang.Iterable values) {
+ ensurePartitionTokensIsMutable();
+ com.google.protobuf.AbstractMessageLite.Builder.addAll(values, partitionTokens_);
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Unique partition identifiers to be used in queries.
+ *
+ *
+ * repeated string partition_tokens = 3;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearPartitionTokens() {
+ partitionTokens_ = com.google.protobuf.LazyStringArrayList.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000004);
+ ;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Unique partition identifiers to be used in queries.
+ *
+ *
+ * repeated string partition_tokens = 3;
+ *
+ * @param value The bytes of the partitionTokens to add.
+ * @return This builder for chaining.
+ */
+ public Builder addPartitionTokensBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ ensurePartitionTokensIsMutable();
+ partitionTokens_.add(value);
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.spanner.v1.ChangeStreamRecord.PartitionStartRecord)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.spanner.v1.ChangeStreamRecord.PartitionStartRecord)
+ private static final com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord
+ DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord();
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord
+ getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser PARSER =
+ new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public PartitionStartRecord parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ Builder builder = newBuilder();
+ try {
+ builder.mergeFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(builder.buildPartial());
+ } catch (com.google.protobuf.UninitializedMessageException e) {
+ throw e.asInvalidProtocolBufferException()
+ .setUnfinishedMessage(builder.buildPartial());
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(e)
+ .setUnfinishedMessage(builder.buildPartial());
+ }
+ return builder.buildPartial();
+ }
+ };
+
+ public static com.google.protobuf.Parser parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser getParserForType() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.PartitionStartRecord
+ getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+ }
+
+ public interface PartitionEndRecordOrBuilder
+ extends
+ // @@protoc_insertion_point(interface_extends:google.spanner.v1.ChangeStreamRecord.PartitionEndRecord)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ *
+ *
+ *
+ * End timestamp at which the change stream partition is terminated. All
+ * changes generated by this partition will have timestamps <=
+ * end_timestamp. DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition. PartitionEndRecord is the last record returned for a
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp end_timestamp = 1;
+ *
+ * @return Whether the endTimestamp field is set.
+ */
+ boolean hasEndTimestamp();
+
+ /**
+ *
+ *
+ *
+ * End timestamp at which the change stream partition is terminated. All
+ * changes generated by this partition will have timestamps <=
+ * end_timestamp. DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition. PartitionEndRecord is the last record returned for a
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp end_timestamp = 1;
+ *
+ * @return The endTimestamp.
+ */
+ com.google.protobuf.Timestamp getEndTimestamp();
+
+ /**
+ *
+ *
+ *
+ * End timestamp at which the change stream partition is terminated. All
+ * changes generated by this partition will have timestamps <=
+ * end_timestamp. DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition. PartitionEndRecord is the last record returned for a
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp end_timestamp = 1;
+ */
+ com.google.protobuf.TimestampOrBuilder getEndTimestampOrBuilder();
+
+ /**
+ *
+ *
+ *
+ * Record sequence numbers are unique and monotonically increasing (but not
+ * necessarily contiguous) for a specific timestamp across record
+ * types in the same partition. To guarantee ordered processing, the reader
+ * should process records (of potentially different types) in
+ * record_sequence order for a specific timestamp in the same partition.
+ *
+ *
+ * string record_sequence = 2;
+ *
+ * @return The recordSequence.
+ */
+ java.lang.String getRecordSequence();
+
+ /**
+ *
+ *
+ *
+ * Record sequence numbers are unique and monotonically increasing (but not
+ * necessarily contiguous) for a specific timestamp across record
+ * types in the same partition. To guarantee ordered processing, the reader
+ * should process records (of potentially different types) in
+ * record_sequence order for a specific timestamp in the same partition.
+ *
+ *
+ * string record_sequence = 2;
+ *
+ * @return The bytes for recordSequence.
+ */
+ com.google.protobuf.ByteString getRecordSequenceBytes();
+
+ /**
+ *
+ *
+ *
+ * Unique partition identifier describing the terminated change stream
+ * partition.
+ * [partition_token][google.spanner.v1.ChangeStreamRecord.PartitionEndRecord.partition_token]
+ * is equal to the partition token of the change stream partition currently
+ * queried to return this PartitionEndRecord.
+ *
+ *
+ * string partition_token = 3;
+ *
+ * @return The partitionToken.
+ */
+ java.lang.String getPartitionToken();
+
+ /**
+ *
+ *
+ *
+ * Unique partition identifier describing the terminated change stream
+ * partition.
+ * [partition_token][google.spanner.v1.ChangeStreamRecord.PartitionEndRecord.partition_token]
+ * is equal to the partition token of the change stream partition currently
+ * queried to return this PartitionEndRecord.
+ *
+ *
+ * string partition_token = 3;
+ *
+ * @return The bytes for partitionToken.
+ */
+ com.google.protobuf.ByteString getPartitionTokenBytes();
+ }
+
+ /**
+ *
+ *
+ *
+ * A partition end record serves as a notification that the client should stop
+ * reading the partition. No further records are expected to be retrieved on
+ * it.
+ *
+ *
+ * Protobuf type {@code google.spanner.v1.ChangeStreamRecord.PartitionEndRecord}
+ */
+ public static final class PartitionEndRecord extends com.google.protobuf.GeneratedMessageV3
+ implements
+ // @@protoc_insertion_point(message_implements:google.spanner.v1.ChangeStreamRecord.PartitionEndRecord)
+ PartitionEndRecordOrBuilder {
+ private static final long serialVersionUID = 0L;
+
+ // Use PartitionEndRecord.newBuilder() to construct.
+ private PartitionEndRecord(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
+ super(builder);
+ }
+
+ private PartitionEndRecord() {
+ recordSequence_ = "";
+ partitionToken_ = "";
+ }
+
+ @java.lang.Override
+ @SuppressWarnings({"unused"})
+ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
+ return new PartitionEndRecord();
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_PartitionEndRecord_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_PartitionEndRecord_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord.class,
+ com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord.Builder.class);
+ }
+
+ private int bitField0_;
+ public static final int END_TIMESTAMP_FIELD_NUMBER = 1;
+ private com.google.protobuf.Timestamp endTimestamp_;
+
+ /**
+ *
+ *
+ *
+ * End timestamp at which the change stream partition is terminated. All
+ * changes generated by this partition will have timestamps <=
+ * end_timestamp. DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition. PartitionEndRecord is the last record returned for a
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp end_timestamp = 1;
+ *
+ * @return Whether the endTimestamp field is set.
+ */
+ @java.lang.Override
+ public boolean hasEndTimestamp() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * End timestamp at which the change stream partition is terminated. All
+ * changes generated by this partition will have timestamps <=
+ * end_timestamp. DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition. PartitionEndRecord is the last record returned for a
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp end_timestamp = 1;
+ *
+ * @return The endTimestamp.
+ */
+ @java.lang.Override
+ public com.google.protobuf.Timestamp getEndTimestamp() {
+ return endTimestamp_ == null
+ ? com.google.protobuf.Timestamp.getDefaultInstance()
+ : endTimestamp_;
+ }
+
+ /**
+ *
+ *
+ *
+ * End timestamp at which the change stream partition is terminated. All
+ * changes generated by this partition will have timestamps <=
+ * end_timestamp. DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition. PartitionEndRecord is the last record returned for a
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp end_timestamp = 1;
+ */
+ @java.lang.Override
+ public com.google.protobuf.TimestampOrBuilder getEndTimestampOrBuilder() {
+ return endTimestamp_ == null
+ ? com.google.protobuf.Timestamp.getDefaultInstance()
+ : endTimestamp_;
+ }
+
+ public static final int RECORD_SEQUENCE_FIELD_NUMBER = 2;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object recordSequence_ = "";
+
+ /**
+ *
+ *
+ *
+ * Record sequence numbers are unique and monotonically increasing (but not
+ * necessarily contiguous) for a specific timestamp across record
+ * types in the same partition. To guarantee ordered processing, the reader
+ * should process records (of potentially different types) in
+ * record_sequence order for a specific timestamp in the same partition.
+ *
+ *
+ * string record_sequence = 2;
+ *
+ * @return The recordSequence.
+ */
+ @java.lang.Override
+ public java.lang.String getRecordSequence() {
+ java.lang.Object ref = recordSequence_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ recordSequence_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Record sequence numbers are unique and monotonically increasing (but not
+ * necessarily contiguous) for a specific timestamp across record
+ * types in the same partition. To guarantee ordered processing, the reader
+ * should process records (of potentially different types) in
+ * record_sequence order for a specific timestamp in the same partition.
+ *
+ *
+ * string record_sequence = 2;
+ *
+ * @return The bytes for recordSequence.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getRecordSequenceBytes() {
+ java.lang.Object ref = recordSequence_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ recordSequence_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PARTITION_TOKEN_FIELD_NUMBER = 3;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object partitionToken_ = "";
+
+ /**
+ *
+ *
+ *
+ * Unique partition identifier describing the terminated change stream
+ * partition.
+ * [partition_token][google.spanner.v1.ChangeStreamRecord.PartitionEndRecord.partition_token]
+ * is equal to the partition token of the change stream partition currently
+ * queried to return this PartitionEndRecord.
+ *
+ *
+ * string partition_token = 3;
+ *
+ * @return The partitionToken.
+ */
+ @java.lang.Override
+ public java.lang.String getPartitionToken() {
+ java.lang.Object ref = partitionToken_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ partitionToken_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Unique partition identifier describing the terminated change stream
+ * partition.
+ * [partition_token][google.spanner.v1.ChangeStreamRecord.PartitionEndRecord.partition_token]
+ * is equal to the partition token of the change stream partition currently
+ * queried to return this PartitionEndRecord.
+ *
+ *
+ * string partition_token = 3;
+ *
+ * @return The bytes for partitionToken.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getPartitionTokenBytes() {
+ java.lang.Object ref = partitionToken_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ partitionToken_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (((bitField0_ & 0x00000001) != 0)) {
+ output.writeMessage(1, getEndTimestamp());
+ }
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(recordSequence_)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 2, recordSequence_);
+ }
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(partitionToken_)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 3, partitionToken_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getEndTimestamp());
+ }
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(recordSequence_)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, recordSequence_);
+ }
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(partitionToken_)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, partitionToken_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord)) {
+ return super.equals(obj);
+ }
+ com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord other =
+ (com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord) obj;
+
+ if (hasEndTimestamp() != other.hasEndTimestamp()) return false;
+ if (hasEndTimestamp()) {
+ if (!getEndTimestamp().equals(other.getEndTimestamp())) return false;
+ }
+ if (!getRecordSequence().equals(other.getRecordSequence())) return false;
+ if (!getPartitionToken().equals(other.getPartitionToken())) return false;
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (hasEndTimestamp()) {
+ hash = (37 * hash) + END_TIMESTAMP_FIELD_NUMBER;
+ hash = (53 * hash) + getEndTimestamp().hashCode();
+ }
+ hash = (37 * hash) + RECORD_SEQUENCE_FIELD_NUMBER;
+ hash = (53 * hash) + getRecordSequence().hashCode();
+ hash = (37 * hash) + PARTITION_TOKEN_FIELD_NUMBER;
+ hash = (53 * hash) + getPartitionToken().hashCode();
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord parseFrom(
+ java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord parseFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord parseDelimitedFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() {
+ return newBuilder();
+ }
+
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+
+ public static Builder newBuilder(
+ com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ *
+ * A partition end record serves as a notification that the client should stop
+ * reading the partition. No further records are expected to be retrieved on
+ * it.
+ *
+ *
+ * Protobuf type {@code google.spanner.v1.ChangeStreamRecord.PartitionEndRecord}
+ */
+ public static final class Builder
+ extends com.google.protobuf.GeneratedMessageV3.Builder
+ implements
+ // @@protoc_insertion_point(builder_implements:google.spanner.v1.ChangeStreamRecord.PartitionEndRecord)
+ com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecordOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_PartitionEndRecord_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_PartitionEndRecord_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord.class,
+ com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord.Builder.class);
+ }
+
+ // Construct using com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+ getEndTimestampFieldBuilder();
+ }
+ }
+
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ bitField0_ = 0;
+ endTimestamp_ = null;
+ if (endTimestampBuilder_ != null) {
+ endTimestampBuilder_.dispose();
+ endTimestampBuilder_ = null;
+ }
+ recordSequence_ = "";
+ partitionToken_ = "";
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+ return com.google.spanner.v1.ChangeStreamProto
+ .internal_static_google_spanner_v1_ChangeStreamRecord_PartitionEndRecord_descriptor;
+ }
+
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord
+ getDefaultInstanceForType() {
+ return com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord build() {
+ com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord buildPartial() {
+ com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord result =
+ new com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord(this);
+ if (bitField0_ != 0) {
+ buildPartial0(result);
+ }
+ onBuilt();
+ return result;
+ }
+
+ private void buildPartial0(
+ com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord result) {
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) != 0)) {
+ result.endTimestamp_ =
+ endTimestampBuilder_ == null ? endTimestamp_ : endTimestampBuilder_.build();
+ to_bitField0_ |= 0x00000001;
+ }
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.recordSequence_ = recordSequence_;
+ }
+ if (((from_bitField0_ & 0x00000004) != 0)) {
+ result.partitionToken_ = partitionToken_;
+ }
+ result.bitField0_ |= to_bitField0_;
+ }
+
+ @java.lang.Override
+ public Builder clone() {
+ return super.clone();
+ }
+
+ @java.lang.Override
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
+ return super.setField(field, value);
+ }
+
+ @java.lang.Override
+ public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return super.clearField(field);
+ }
+
+ @java.lang.Override
+ public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return super.clearOneof(oneof);
+ }
+
+ @java.lang.Override
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index,
+ java.lang.Object value) {
+ return super.setRepeatedField(field, index, value);
+ }
+
+ @java.lang.Override
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
+ return super.addRepeatedField(field, value);
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord) {
+ return mergeFrom((com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord) other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord other) {
+ if (other
+ == com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord.getDefaultInstance())
+ return this;
+ if (other.hasEndTimestamp()) {
+ mergeEndTimestamp(other.getEndTimestamp());
+ }
+ if (!other.getRecordSequence().isEmpty()) {
+ recordSequence_ = other.recordSequence_;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ }
+ if (!other.getPartitionToken().isEmpty()) {
+ partitionToken_ = other.partitionToken_;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 10:
+ {
+ input.readMessage(getEndTimestampFieldBuilder().getBuilder(), extensionRegistry);
+ bitField0_ |= 0x00000001;
+ break;
+ } // case 10
+ case 18:
+ {
+ recordSequence_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000002;
+ break;
+ } // case 18
+ case 26:
+ {
+ partitionToken_ = input.readStringRequireUtf8();
+ bitField0_ |= 0x00000004;
+ break;
+ } // case 26
+ default:
+ {
+ if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+ done = true; // was an endgroup tag
+ }
+ break;
+ } // default:
+ } // switch (tag)
+ } // while (!done)
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.unwrapIOException();
+ } finally {
+ onChanged();
+ } // finally
+ return this;
+ }
+
+ private int bitField0_;
+
+ private com.google.protobuf.Timestamp endTimestamp_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.protobuf.Timestamp,
+ com.google.protobuf.Timestamp.Builder,
+ com.google.protobuf.TimestampOrBuilder>
+ endTimestampBuilder_;
+
+ /**
+ *
+ *
+ *
+ * End timestamp at which the change stream partition is terminated. All
+ * changes generated by this partition will have timestamps <=
+ * end_timestamp. DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition. PartitionEndRecord is the last record returned for a
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp end_timestamp = 1;
+ *
+ * @return Whether the endTimestamp field is set.
+ */
+ public boolean hasEndTimestamp() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * End timestamp at which the change stream partition is terminated. All
+ * changes generated by this partition will have timestamps <=
+ * end_timestamp. DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition. PartitionEndRecord is the last record returned for a
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp end_timestamp = 1;
+ *
+ * @return The endTimestamp.
+ */
+ public com.google.protobuf.Timestamp getEndTimestamp() {
+ if (endTimestampBuilder_ == null) {
+ return endTimestamp_ == null
+ ? com.google.protobuf.Timestamp.getDefaultInstance()
+ : endTimestamp_;
+ } else {
+ return endTimestampBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * End timestamp at which the change stream partition is terminated. All
+ * changes generated by this partition will have timestamps <=
+ * end_timestamp. DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition. PartitionEndRecord is the last record returned for a
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp end_timestamp = 1;
+ */
+ public Builder setEndTimestamp(com.google.protobuf.Timestamp value) {
+ if (endTimestampBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ endTimestamp_ = value;
+ } else {
+ endTimestampBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * End timestamp at which the change stream partition is terminated. All
+ * changes generated by this partition will have timestamps <=
+ * end_timestamp. DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition. PartitionEndRecord is the last record returned for a
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp end_timestamp = 1;
+ */
+ public Builder setEndTimestamp(com.google.protobuf.Timestamp.Builder builderForValue) {
+ if (endTimestampBuilder_ == null) {
+ endTimestamp_ = builderForValue.build();
+ } else {
+ endTimestampBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * End timestamp at which the change stream partition is terminated. All
+ * changes generated by this partition will have timestamps <=
+ * end_timestamp. DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition. PartitionEndRecord is the last record returned for a
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp end_timestamp = 1;
+ */
+ public Builder mergeEndTimestamp(com.google.protobuf.Timestamp value) {
+ if (endTimestampBuilder_ == null) {
+ if (((bitField0_ & 0x00000001) != 0)
+ && endTimestamp_ != null
+ && endTimestamp_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
+ getEndTimestampBuilder().mergeFrom(value);
+ } else {
+ endTimestamp_ = value;
+ }
+ } else {
+ endTimestampBuilder_.mergeFrom(value);
+ }
+ if (endTimestamp_ != null) {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * End timestamp at which the change stream partition is terminated. All
+ * changes generated by this partition will have timestamps <=
+ * end_timestamp. DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition. PartitionEndRecord is the last record returned for a
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp end_timestamp = 1;
+ */
+ public Builder clearEndTimestamp() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ endTimestamp_ = null;
+ if (endTimestampBuilder_ != null) {
+ endTimestampBuilder_.dispose();
+ endTimestampBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * End timestamp at which the change stream partition is terminated. All
+ * changes generated by this partition will have timestamps <=
+ * end_timestamp. DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition. PartitionEndRecord is the last record returned for a
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp end_timestamp = 1;
+ */
+ public com.google.protobuf.Timestamp.Builder getEndTimestampBuilder() {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return getEndTimestampFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ *
+ * End timestamp at which the change stream partition is terminated. All
+ * changes generated by this partition will have timestamps <=
+ * end_timestamp. DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition. PartitionEndRecord is the last record returned for a
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp end_timestamp = 1;
+ */
+ public com.google.protobuf.TimestampOrBuilder getEndTimestampOrBuilder() {
+ if (endTimestampBuilder_ != null) {
+ return endTimestampBuilder_.getMessageOrBuilder();
+ } else {
+ return endTimestamp_ == null
+ ? com.google.protobuf.Timestamp.getDefaultInstance()
+ : endTimestamp_;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * End timestamp at which the change stream partition is terminated. All
+ * changes generated by this partition will have timestamps <=
+ * end_timestamp. DataChangeRecord.commit_timestamps,
+ * PartitionStartRecord.start_timestamps,
+ * PartitionEventRecord.commit_timestamps, and
+ * PartitionEndRecord.end_timestamps can have the same value in the same
+ * partition. PartitionEndRecord is the last record returned for a
+ * partition.
+ *
+ *
+ * .google.protobuf.Timestamp end_timestamp = 1;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.protobuf.Timestamp,
+ com.google.protobuf.Timestamp.Builder,
+ com.google.protobuf.TimestampOrBuilder>
+ getEndTimestampFieldBuilder() {
+ if (endTimestampBuilder_ == null) {
+ endTimestampBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.protobuf.Timestamp,
+ com.google.protobuf.Timestamp.Builder,
+ com.google.protobuf.TimestampOrBuilder>(
+ getEndTimestamp(), getParentForChildren(), isClean());
+ endTimestamp_ = null;
+ }
+ return endTimestampBuilder_;
+ }
+
+ private java.lang.Object recordSequence_ = "";
+
+ /**
+ *
+ *
+ *
+ * Record sequence numbers are unique and monotonically increasing (but not
+ * necessarily contiguous) for a specific timestamp across record
+ * types in the same partition. To guarantee ordered processing, the reader
+ * should process records (of potentially different types) in
+ * record_sequence order for a specific timestamp in the same partition.
+ *
+ *
+ * string record_sequence = 2;
+ *
+ * @return The recordSequence.
+ */
+ public java.lang.String getRecordSequence() {
+ java.lang.Object ref = recordSequence_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ recordSequence_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Record sequence numbers are unique and monotonically increasing (but not
+ * necessarily contiguous) for a specific timestamp across record
+ * types in the same partition. To guarantee ordered processing, the reader
+ * should process records (of potentially different types) in
+ * record_sequence order for a specific timestamp in the same partition.
+ *
+ *
+ * string record_sequence = 2;
+ *
+ * @return The bytes for recordSequence.
+ */
+ public com.google.protobuf.ByteString getRecordSequenceBytes() {
+ java.lang.Object ref = recordSequence_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ recordSequence_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Record sequence numbers are unique and monotonically increasing (but not
+ * necessarily contiguous) for a specific timestamp across record
+ * types in the same partition. To guarantee ordered processing, the reader
+ * should process records (of potentially different types) in
+ * record_sequence order for a specific timestamp in the same partition.
+ *
+ *
+ * string record_sequence = 2;
+ *
+ * @param value The recordSequence to set.
+ * @return This builder for chaining.
+ */
+ public Builder setRecordSequence(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ recordSequence_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Record sequence numbers are unique and monotonically increasing (but not
+ * necessarily contiguous) for a specific timestamp across record
+ * types in the same partition. To guarantee ordered processing, the reader
+ * should process records (of potentially different types) in
+ * record_sequence order for a specific timestamp in the same partition.
+ *
+ *
+ * string record_sequence = 2;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearRecordSequence() {
+ recordSequence_ = getDefaultInstance().getRecordSequence();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Record sequence numbers are unique and monotonically increasing (but not
+ * necessarily contiguous) for a specific timestamp across record
+ * types in the same partition. To guarantee ordered processing, the reader
+ * should process records (of potentially different types) in
+ * record_sequence order for a specific timestamp in the same partition.
+ *
+ *
+ * string record_sequence = 2;
+ *
+ * @param value The bytes for recordSequence to set.
+ * @return This builder for chaining.
+ */
+ public Builder setRecordSequenceBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ recordSequence_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object partitionToken_ = "";
+
+ /**
+ *
+ *
+ *
+ * Unique partition identifier describing the terminated change stream
+ * partition.
+ * [partition_token][google.spanner.v1.ChangeStreamRecord.PartitionEndRecord.partition_token]
+ * is equal to the partition token of the change stream partition currently
+ * queried to return this PartitionEndRecord.
+ *
+ *
+ * string partition_token = 3;
+ *
+ * @return The partitionToken.
+ */
+ public java.lang.String getPartitionToken() {
+ java.lang.Object ref = partitionToken_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ partitionToken_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Unique partition identifier describing the terminated change stream
+ * partition.
+ * [partition_token][google.spanner.v1.ChangeStreamRecord.PartitionEndRecord.partition_token]
+ * is equal to the partition token of the change stream partition currently
+ * queried to return this PartitionEndRecord.
+ *
+ *
+ * string partition_token = 3;
+ *
+ * @return The bytes for partitionToken.
+ */
+ public com.google.protobuf.ByteString getPartitionTokenBytes() {
+ java.lang.Object ref = partitionToken_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ partitionToken_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Unique partition identifier describing the terminated change stream
+ * partition.
+ * [partition_token][google.spanner.v1.ChangeStreamRecord.PartitionEndRecord.partition_token]
+ * is equal to the partition token of the change stream partition currently
+ * queried to return this PartitionEndRecord.
+ *
+ *
+ * string partition_token = 3;
+ *
+ * @param value The partitionToken to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPartitionToken(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ partitionToken_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Unique partition identifier describing the terminated change stream
+ * partition.
+ * [partition_token][google.spanner.v1.ChangeStreamRecord.PartitionEndRecord.partition_token]
+ * is equal to the partition token of the change stream partition currently
+ * queried to return this PartitionEndRecord.
+ *
+ *
+ * string partition_token = 3;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearPartitionToken() {
+ partitionToken_ = getDefaultInstance().getPartitionToken();
+ bitField0_ = (bitField0_ & ~0x00000004);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Unique partition identifier describing the terminated change stream
+ * partition.
+ * [partition_token][google.spanner.v1.ChangeStreamRecord.PartitionEndRecord.partition_token]
+ * is equal to the partition token of the change stream partition currently
+ * queried to return this PartitionEndRecord.
+ *
+ *
+ * string partition_token = 3;
+ *
+ * @param value The bytes for partitionToken to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPartitionTokenBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ partitionToken_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.spanner.v1.ChangeStreamRecord.PartitionEndRecord)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.spanner.v1.ChangeStreamRecord.PartitionEndRecord)
+ private static final com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord
+ DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord();
+ }
+
+ public static com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser PARSER =
+ new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public PartitionEndRecord parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ Builder builder = newBuilder();
+ try {
+ builder.mergeFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(builder.buildPartial());
+ } catch (com.google.protobuf.UninitializedMessageException e) {
+ throw e.asInvalidProtocolBufferException()
+ .setUnfinishedMessage(builder.buildPartial());
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(e)
+ .setUnfinishedMessage(builder.buildPartial());
+ }
+ return builder.buildPartial();
+ }
+ };
+
+ public static com.google.protobuf.Parser parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser getParserForType() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.spanner.v1.ChangeStreamRecord.PartitionEndRecord getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+ }
+
+ public interface PartitionEventRecordOrBuilder
+ extends
+ // @@protoc_insertion_point(interface_extends:google.spanner.v1.ChangeStreamRecord.PartitionEventRecord)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ *
+ *
+ *