+ * A single Adapt message request. + *+ * + * Protobuf type {@code google.spanner.executor.v1.AdaptMessageAction} + */ +@com.google.protobuf.Generated +public final class AdaptMessageAction extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.spanner.executor.v1.AdaptMessageAction) + AdaptMessageActionOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "AdaptMessageAction"); + } + + // Use AdaptMessageAction.newBuilder() to construct. + private AdaptMessageAction(com.google.protobuf.GeneratedMessage.Builder> builder) { + super(builder); + } + + private AdaptMessageAction() { + databaseUri_ = ""; + protocol_ = ""; + payload_ = com.google.protobuf.ByteString.EMPTY; + query_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.spanner.executor.v1.CloudExecutorProto + .internal_static_google_spanner_executor_v1_AdaptMessageAction_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + @java.lang.Override + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { + switch (number) { + case 4: + return internalGetAttachments(); + default: + throw new RuntimeException("Invalid map field number: " + number); + } + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.spanner.executor.v1.CloudExecutorProto + .internal_static_google_spanner_executor_v1_AdaptMessageAction_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.spanner.executor.v1.AdaptMessageAction.class, + com.google.spanner.executor.v1.AdaptMessageAction.Builder.class); + } + + public static final int DATABASE_URI_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object databaseUri_ = ""; + + /** + * + * + *
+ * The fully qualified uri of the database to send AdaptMessage to. + *+ * + *
string database_uri = 1;
+ *
+ * @return The databaseUri.
+ */
+ @java.lang.Override
+ public java.lang.String getDatabaseUri() {
+ java.lang.Object ref = databaseUri_;
+ 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();
+ databaseUri_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The fully qualified uri of the database to send AdaptMessage to. + *+ * + *
string database_uri = 1;
+ *
+ * @return The bytes for databaseUri.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getDatabaseUriBytes() {
+ java.lang.Object ref = databaseUri_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ databaseUri_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PROTOCOL_FIELD_NUMBER = 2;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object protocol_ = "";
+
+ /**
+ *
+ *
+ * + * The protocol to use for the request. + *+ * + *
string protocol = 2;
+ *
+ * @return The protocol.
+ */
+ @java.lang.Override
+ public java.lang.String getProtocol() {
+ java.lang.Object ref = protocol_;
+ 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();
+ protocol_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The protocol to use for the request. + *+ * + *
string protocol = 2;
+ *
+ * @return The bytes for protocol.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getProtocolBytes() {
+ java.lang.Object ref = protocol_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ protocol_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PAYLOAD_FIELD_NUMBER = 3;
+ private com.google.protobuf.ByteString payload_ = com.google.protobuf.ByteString.EMPTY;
+
+ /**
+ *
+ *
+ * + * The payload of the request. + *+ * + *
bytes payload = 3;
+ *
+ * @return The payload.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getPayload() {
+ return payload_;
+ }
+
+ public static final int ATTACHMENTS_FIELD_NUMBER = 4;
+
+ private static final class AttachmentsDefaultEntryHolder {
+ static final com.google.protobuf.MapEntry+ * Attachments to be sent with the request. + *+ * + *
map<string, string> attachments = 4;
+ */
+ @java.lang.Override
+ public boolean containsAttachments(java.lang.String key) {
+ if (key == null) {
+ throw new NullPointerException("map key");
+ }
+ return internalGetAttachments().getMap().containsKey(key);
+ }
+
+ /** Use {@link #getAttachmentsMap()} instead. */
+ @java.lang.Override
+ @java.lang.Deprecated
+ public java.util.Map+ * Attachments to be sent with the request. + *+ * + *
map<string, string> attachments = 4;
+ */
+ @java.lang.Override
+ public java.util.Map+ * Attachments to be sent with the request. + *+ * + *
map<string, string> attachments = 4;
+ */
+ @java.lang.Override
+ public /* nullable */ java.lang.String getAttachmentsOrDefault(
+ java.lang.String key,
+ /* nullable */
+ java.lang.String defaultValue) {
+ if (key == null) {
+ throw new NullPointerException("map key");
+ }
+ java.util.Map+ * Attachments to be sent with the request. + *+ * + *
map<string, string> attachments = 4;
+ */
+ @java.lang.Override
+ public java.lang.String getAttachmentsOrThrow(java.lang.String key) {
+ if (key == null) {
+ throw new NullPointerException("map key");
+ }
+ java.util.Map+ * The query to be sent with the request. + *+ * + *
string query = 5;
+ *
+ * @return The query.
+ */
+ @java.lang.Override
+ public java.lang.String getQuery() {
+ java.lang.Object ref = query_;
+ 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();
+ query_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The query to be sent with the request. + *+ * + *
string query = 5;
+ *
+ * @return The bytes for query.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getQueryBytes() {
+ java.lang.Object ref = query_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ query_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PREPARE_THEN_EXECUTE_FIELD_NUMBER = 6;
+ private boolean prepareThenExecute_ = false;
+
+ /**
+ *
+ *
+ * + * If true, the action will send a Prepare request first and then an + * Execute request right after to execute the query. This is only supported + * for Cloud Client path. + *+ * + *
bool prepare_then_execute = 6;
+ *
+ * @return The prepareThenExecute.
+ */
+ @java.lang.Override
+ public boolean getPrepareThenExecute() {
+ return prepareThenExecute_;
+ }
+
+ 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.GeneratedMessage.isStringEmpty(databaseUri_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 1, databaseUri_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(protocol_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 2, protocol_);
+ }
+ if (!payload_.isEmpty()) {
+ output.writeBytes(3, payload_);
+ }
+ com.google.protobuf.GeneratedMessage.serializeStringMapTo(
+ output, internalGetAttachments(), AttachmentsDefaultEntryHolder.defaultEntry, 4);
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(query_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 5, query_);
+ }
+ if (prepareThenExecute_ != false) {
+ output.writeBool(6, prepareThenExecute_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(databaseUri_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(1, databaseUri_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(protocol_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(2, protocol_);
+ }
+ if (!payload_.isEmpty()) {
+ size += com.google.protobuf.CodedOutputStream.computeBytesSize(3, payload_);
+ }
+ for (java.util.Map.Entry+ * A single Adapt message request. + *+ * + * Protobuf type {@code google.spanner.executor.v1.AdaptMessageAction} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder
+ * The fully qualified uri of the database to send AdaptMessage to. + *+ * + *
string database_uri = 1;
+ *
+ * @return The databaseUri.
+ */
+ public java.lang.String getDatabaseUri() {
+ java.lang.Object ref = databaseUri_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ databaseUri_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The fully qualified uri of the database to send AdaptMessage to. + *+ * + *
string database_uri = 1;
+ *
+ * @return The bytes for databaseUri.
+ */
+ public com.google.protobuf.ByteString getDatabaseUriBytes() {
+ java.lang.Object ref = databaseUri_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ databaseUri_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The fully qualified uri of the database to send AdaptMessage to. + *+ * + *
string database_uri = 1;
+ *
+ * @param value The databaseUri to set.
+ * @return This builder for chaining.
+ */
+ public Builder setDatabaseUri(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ databaseUri_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The fully qualified uri of the database to send AdaptMessage to. + *+ * + *
string database_uri = 1;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearDatabaseUri() {
+ databaseUri_ = getDefaultInstance().getDatabaseUri();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The fully qualified uri of the database to send AdaptMessage to. + *+ * + *
string database_uri = 1;
+ *
+ * @param value The bytes for databaseUri to set.
+ * @return This builder for chaining.
+ */
+ public Builder setDatabaseUriBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ databaseUri_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object protocol_ = "";
+
+ /**
+ *
+ *
+ * + * The protocol to use for the request. + *+ * + *
string protocol = 2;
+ *
+ * @return The protocol.
+ */
+ public java.lang.String getProtocol() {
+ java.lang.Object ref = protocol_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ protocol_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The protocol to use for the request. + *+ * + *
string protocol = 2;
+ *
+ * @return The bytes for protocol.
+ */
+ public com.google.protobuf.ByteString getProtocolBytes() {
+ java.lang.Object ref = protocol_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ protocol_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The protocol to use for the request. + *+ * + *
string protocol = 2;
+ *
+ * @param value The protocol to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProtocol(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ protocol_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The protocol to use for the request. + *+ * + *
string protocol = 2;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearProtocol() {
+ protocol_ = getDefaultInstance().getProtocol();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The protocol to use for the request. + *+ * + *
string protocol = 2;
+ *
+ * @param value The bytes for protocol to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProtocolBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ protocol_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ private com.google.protobuf.ByteString payload_ = com.google.protobuf.ByteString.EMPTY;
+
+ /**
+ *
+ *
+ * + * The payload of the request. + *+ * + *
bytes payload = 3;
+ *
+ * @return The payload.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getPayload() {
+ return payload_;
+ }
+
+ /**
+ *
+ *
+ * + * The payload of the request. + *+ * + *
bytes payload = 3;
+ *
+ * @param value The payload to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPayload(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ payload_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The payload of the request. + *+ * + *
bytes payload = 3;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearPayload() {
+ bitField0_ = (bitField0_ & ~0x00000004);
+ payload_ = getDefaultInstance().getPayload();
+ onChanged();
+ return this;
+ }
+
+ private com.google.protobuf.MapField+ * Attachments to be sent with the request. + *+ * + *
map<string, string> attachments = 4;
+ */
+ @java.lang.Override
+ public boolean containsAttachments(java.lang.String key) {
+ if (key == null) {
+ throw new NullPointerException("map key");
+ }
+ return internalGetAttachments().getMap().containsKey(key);
+ }
+
+ /** Use {@link #getAttachmentsMap()} instead. */
+ @java.lang.Override
+ @java.lang.Deprecated
+ public java.util.Map+ * Attachments to be sent with the request. + *+ * + *
map<string, string> attachments = 4;
+ */
+ @java.lang.Override
+ public java.util.Map+ * Attachments to be sent with the request. + *+ * + *
map<string, string> attachments = 4;
+ */
+ @java.lang.Override
+ public /* nullable */ java.lang.String getAttachmentsOrDefault(
+ java.lang.String key,
+ /* nullable */
+ java.lang.String defaultValue) {
+ if (key == null) {
+ throw new NullPointerException("map key");
+ }
+ java.util.Map+ * Attachments to be sent with the request. + *+ * + *
map<string, string> attachments = 4;
+ */
+ @java.lang.Override
+ public java.lang.String getAttachmentsOrThrow(java.lang.String key) {
+ if (key == null) {
+ throw new NullPointerException("map key");
+ }
+ java.util.Map+ * Attachments to be sent with the request. + *+ * + *
map<string, string> attachments = 4;
+ */
+ public Builder removeAttachments(java.lang.String key) {
+ if (key == null) {
+ throw new NullPointerException("map key");
+ }
+ internalGetMutableAttachments().getMutableMap().remove(key);
+ return this;
+ }
+
+ /** Use alternate mutation accessors instead. */
+ @java.lang.Deprecated
+ public java.util.Map+ * Attachments to be sent with the request. + *+ * + *
map<string, string> attachments = 4;
+ */
+ public Builder putAttachments(java.lang.String key, java.lang.String value) {
+ if (key == null) {
+ throw new NullPointerException("map key");
+ }
+ if (value == null) {
+ throw new NullPointerException("map value");
+ }
+ internalGetMutableAttachments().getMutableMap().put(key, value);
+ bitField0_ |= 0x00000008;
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Attachments to be sent with the request. + *+ * + *
map<string, string> attachments = 4;
+ */
+ public Builder putAllAttachments(java.util.Map+ * The query to be sent with the request. + *+ * + *
string query = 5;
+ *
+ * @return The query.
+ */
+ public java.lang.String getQuery() {
+ java.lang.Object ref = query_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ query_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The query to be sent with the request. + *+ * + *
string query = 5;
+ *
+ * @return The bytes for query.
+ */
+ public com.google.protobuf.ByteString getQueryBytes() {
+ java.lang.Object ref = query_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ query_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The query to be sent with the request. + *+ * + *
string query = 5;
+ *
+ * @param value The query to set.
+ * @return This builder for chaining.
+ */
+ public Builder setQuery(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ query_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The query to be sent with the request. + *+ * + *
string query = 5;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearQuery() {
+ query_ = getDefaultInstance().getQuery();
+ bitField0_ = (bitField0_ & ~0x00000010);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The query to be sent with the request. + *+ * + *
string query = 5;
+ *
+ * @param value The bytes for query to set.
+ * @return This builder for chaining.
+ */
+ public Builder setQueryBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ query_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ private boolean prepareThenExecute_;
+
+ /**
+ *
+ *
+ * + * If true, the action will send a Prepare request first and then an + * Execute request right after to execute the query. This is only supported + * for Cloud Client path. + *+ * + *
bool prepare_then_execute = 6;
+ *
+ * @return The prepareThenExecute.
+ */
+ @java.lang.Override
+ public boolean getPrepareThenExecute() {
+ return prepareThenExecute_;
+ }
+
+ /**
+ *
+ *
+ * + * If true, the action will send a Prepare request first and then an + * Execute request right after to execute the query. This is only supported + * for Cloud Client path. + *+ * + *
bool prepare_then_execute = 6;
+ *
+ * @param value The prepareThenExecute to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPrepareThenExecute(boolean value) {
+
+ prepareThenExecute_ = value;
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * If true, the action will send a Prepare request first and then an + * Execute request right after to execute the query. This is only supported + * for Cloud Client path. + *+ * + *
bool prepare_then_execute = 6;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearPrepareThenExecute() {
+ bitField0_ = (bitField0_ & ~0x00000020);
+ prepareThenExecute_ = false;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.spanner.executor.v1.AdaptMessageAction)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.spanner.executor.v1.AdaptMessageAction)
+ private static final com.google.spanner.executor.v1.AdaptMessageAction DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.spanner.executor.v1.AdaptMessageAction();
+ }
+
+ public static com.google.spanner.executor.v1.AdaptMessageAction getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser+ * The fully qualified uri of the database to send AdaptMessage to. + *+ * + *
string database_uri = 1;
+ *
+ * @return The databaseUri.
+ */
+ java.lang.String getDatabaseUri();
+
+ /**
+ *
+ *
+ * + * The fully qualified uri of the database to send AdaptMessage to. + *+ * + *
string database_uri = 1;
+ *
+ * @return The bytes for databaseUri.
+ */
+ com.google.protobuf.ByteString getDatabaseUriBytes();
+
+ /**
+ *
+ *
+ * + * The protocol to use for the request. + *+ * + *
string protocol = 2;
+ *
+ * @return The protocol.
+ */
+ java.lang.String getProtocol();
+
+ /**
+ *
+ *
+ * + * The protocol to use for the request. + *+ * + *
string protocol = 2;
+ *
+ * @return The bytes for protocol.
+ */
+ com.google.protobuf.ByteString getProtocolBytes();
+
+ /**
+ *
+ *
+ * + * The payload of the request. + *+ * + *
bytes payload = 3;
+ *
+ * @return The payload.
+ */
+ com.google.protobuf.ByteString getPayload();
+
+ /**
+ *
+ *
+ * + * Attachments to be sent with the request. + *+ * + *
map<string, string> attachments = 4;
+ */
+ int getAttachmentsCount();
+
+ /**
+ *
+ *
+ * + * Attachments to be sent with the request. + *+ * + *
map<string, string> attachments = 4;
+ */
+ boolean containsAttachments(java.lang.String key);
+
+ /** Use {@link #getAttachmentsMap()} instead. */
+ @java.lang.Deprecated
+ java.util.Map+ * Attachments to be sent with the request. + *+ * + *
map<string, string> attachments = 4;
+ */
+ java.util.Map+ * Attachments to be sent with the request. + *+ * + *
map<string, string> attachments = 4;
+ */
+ /* nullable */
+ java.lang.String getAttachmentsOrDefault(
+ java.lang.String key,
+ /* nullable */
+ java.lang.String defaultValue);
+
+ /**
+ *
+ *
+ * + * Attachments to be sent with the request. + *+ * + *
map<string, string> attachments = 4;
+ */
+ java.lang.String getAttachmentsOrThrow(java.lang.String key);
+
+ /**
+ *
+ *
+ * + * The query to be sent with the request. + *+ * + *
string query = 5;
+ *
+ * @return The query.
+ */
+ java.lang.String getQuery();
+
+ /**
+ *
+ *
+ * + * The query to be sent with the request. + *+ * + *
string query = 5;
+ *
+ * @return The bytes for query.
+ */
+ com.google.protobuf.ByteString getQueryBytes();
+
+ /**
+ *
+ *
+ * + * If true, the action will send a Prepare request first and then an + * Execute request right after to execute the query. This is only supported + * for Cloud Client path. + *+ * + *
bool prepare_then_execute = 6;
+ *
+ * @return The prepareThenExecute.
+ */
+ boolean getPrepareThenExecute();
+}
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/AddSplitPointsAction.java b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/AddSplitPointsAction.java
new file mode 100644
index 00000000000..b9c8edfdda6
--- /dev/null
+++ b/proto-google-cloud-spanner-executor-v1/src/main/java/com/google/spanner/executor/v1/AddSplitPointsAction.java
@@ -0,0 +1,1498 @@
+/*
+ * Copyright 2026 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!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: google/spanner/executor/v1/cloud_executor.proto
+// Protobuf Java Version: 4.33.2
+
+package com.google.spanner.executor.v1;
+
+/**
+ *
+ *
+ * + * Action that adds a split point to a Cloud Spanner database. + *+ * + * Protobuf type {@code google.spanner.executor.v1.AddSplitPointsAction} + */ +@com.google.protobuf.Generated +public final class AddSplitPointsAction extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.spanner.executor.v1.AddSplitPointsAction) + AddSplitPointsActionOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "AddSplitPointsAction"); + } + + // Use AddSplitPointsAction.newBuilder() to construct. + private AddSplitPointsAction(com.google.protobuf.GeneratedMessage.Builder> builder) { + super(builder); + } + + private AddSplitPointsAction() { + projectId_ = ""; + instanceId_ = ""; + databaseId_ = ""; + splitPoints_ = java.util.Collections.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.spanner.executor.v1.CloudExecutorProto + .internal_static_google_spanner_executor_v1_AddSplitPointsAction_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.spanner.executor.v1.CloudExecutorProto + .internal_static_google_spanner_executor_v1_AddSplitPointsAction_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.spanner.executor.v1.AddSplitPointsAction.class, + com.google.spanner.executor.v1.AddSplitPointsAction.Builder.class); + } + + public static final int PROJECT_ID_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object projectId_ = ""; + + /** + * + * + *
+ * Cloud project ID, e.g. "spanner-cloud-systest". + *+ * + *
string project_id = 1;
+ *
+ * @return The projectId.
+ */
+ @java.lang.Override
+ public java.lang.String getProjectId() {
+ java.lang.Object ref = projectId_;
+ 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();
+ projectId_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Cloud project ID, e.g. "spanner-cloud-systest". + *+ * + *
string project_id = 1;
+ *
+ * @return The bytes for projectId.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getProjectIdBytes() {
+ java.lang.Object ref = projectId_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ projectId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int INSTANCE_ID_FIELD_NUMBER = 2;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object instanceId_ = "";
+
+ /**
+ *
+ *
+ * + * Cloud instance ID (not path), e.g. "test-instance". + *+ * + *
string instance_id = 2;
+ *
+ * @return The instanceId.
+ */
+ @java.lang.Override
+ public java.lang.String getInstanceId() {
+ java.lang.Object ref = instanceId_;
+ 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();
+ instanceId_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Cloud instance ID (not path), e.g. "test-instance". + *+ * + *
string instance_id = 2;
+ *
+ * @return The bytes for instanceId.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getInstanceIdBytes() {
+ java.lang.Object ref = instanceId_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ instanceId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int DATABASE_ID_FIELD_NUMBER = 3;
+
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object databaseId_ = "";
+
+ /**
+ *
+ *
+ * + * Cloud database ID (not full path), e.g. "db0". + *+ * + *
string database_id = 3;
+ *
+ * @return The databaseId.
+ */
+ @java.lang.Override
+ public java.lang.String getDatabaseId() {
+ java.lang.Object ref = databaseId_;
+ 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();
+ databaseId_ = s;
+ return s;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Cloud database ID (not full path), e.g. "db0". + *+ * + *
string database_id = 3;
+ *
+ * @return The bytes for databaseId.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getDatabaseIdBytes() {
+ java.lang.Object ref = databaseId_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ databaseId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int SPLIT_POINTS_FIELD_NUMBER = 4;
+
+ @SuppressWarnings("serial")
+ private java.util.List+ * The split points to add. + *+ * + *
repeated .google.spanner.admin.database.v1.SplitPoints split_points = 4;
+ */
+ @java.lang.Override
+ public java.util.List+ * The split points to add. + *+ * + *
repeated .google.spanner.admin.database.v1.SplitPoints split_points = 4;
+ */
+ @java.lang.Override
+ public java.util.List extends com.google.spanner.admin.database.v1.SplitPointsOrBuilder>
+ getSplitPointsOrBuilderList() {
+ return splitPoints_;
+ }
+
+ /**
+ *
+ *
+ * + * The split points to add. + *+ * + *
repeated .google.spanner.admin.database.v1.SplitPoints split_points = 4;
+ */
+ @java.lang.Override
+ public int getSplitPointsCount() {
+ return splitPoints_.size();
+ }
+
+ /**
+ *
+ *
+ * + * The split points to add. + *+ * + *
repeated .google.spanner.admin.database.v1.SplitPoints split_points = 4;
+ */
+ @java.lang.Override
+ public com.google.spanner.admin.database.v1.SplitPoints getSplitPoints(int index) {
+ return splitPoints_.get(index);
+ }
+
+ /**
+ *
+ *
+ * + * The split points to add. + *+ * + *
repeated .google.spanner.admin.database.v1.SplitPoints split_points = 4;
+ */
+ @java.lang.Override
+ public com.google.spanner.admin.database.v1.SplitPointsOrBuilder getSplitPointsOrBuilder(
+ int index) {
+ return splitPoints_.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 {
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(projectId_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 1, projectId_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(instanceId_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 2, instanceId_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(databaseId_)) {
+ com.google.protobuf.GeneratedMessage.writeString(output, 3, databaseId_);
+ }
+ for (int i = 0; i < splitPoints_.size(); i++) {
+ output.writeMessage(4, splitPoints_.get(i));
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(projectId_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(1, projectId_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(instanceId_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(2, instanceId_);
+ }
+ if (!com.google.protobuf.GeneratedMessage.isStringEmpty(databaseId_)) {
+ size += com.google.protobuf.GeneratedMessage.computeStringSize(3, databaseId_);
+ }
+ for (int i = 0; i < splitPoints_.size(); i++) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, splitPoints_.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.executor.v1.AddSplitPointsAction)) {
+ return super.equals(obj);
+ }
+ com.google.spanner.executor.v1.AddSplitPointsAction other =
+ (com.google.spanner.executor.v1.AddSplitPointsAction) obj;
+
+ if (!getProjectId().equals(other.getProjectId())) return false;
+ if (!getInstanceId().equals(other.getInstanceId())) return false;
+ if (!getDatabaseId().equals(other.getDatabaseId())) return false;
+ if (!getSplitPointsList().equals(other.getSplitPointsList())) 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) + PROJECT_ID_FIELD_NUMBER;
+ hash = (53 * hash) + getProjectId().hashCode();
+ hash = (37 * hash) + INSTANCE_ID_FIELD_NUMBER;
+ hash = (53 * hash) + getInstanceId().hashCode();
+ hash = (37 * hash) + DATABASE_ID_FIELD_NUMBER;
+ hash = (53 * hash) + getDatabaseId().hashCode();
+ if (getSplitPointsCount() > 0) {
+ hash = (37 * hash) + SPLIT_POINTS_FIELD_NUMBER;
+ hash = (53 * hash) + getSplitPointsList().hashCode();
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.spanner.executor.v1.AddSplitPointsAction parseFrom(
+ java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.spanner.executor.v1.AddSplitPointsAction 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.executor.v1.AddSplitPointsAction parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.spanner.executor.v1.AddSplitPointsAction 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.executor.v1.AddSplitPointsAction parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.spanner.executor.v1.AddSplitPointsAction parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.spanner.executor.v1.AddSplitPointsAction parseFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.spanner.executor.v1.AddSplitPointsAction parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.spanner.executor.v1.AddSplitPointsAction parseDelimitedFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.spanner.executor.v1.AddSplitPointsAction parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.spanner.executor.v1.AddSplitPointsAction parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.spanner.executor.v1.AddSplitPointsAction parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.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.executor.v1.AddSplitPointsAction 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.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ * + * Action that adds a split point to a Cloud Spanner database. + *+ * + * Protobuf type {@code google.spanner.executor.v1.AddSplitPointsAction} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder
+ * Cloud project ID, e.g. "spanner-cloud-systest". + *+ * + *
string project_id = 1;
+ *
+ * @return The projectId.
+ */
+ public java.lang.String getProjectId() {
+ java.lang.Object ref = projectId_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ projectId_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Cloud project ID, e.g. "spanner-cloud-systest". + *+ * + *
string project_id = 1;
+ *
+ * @return The bytes for projectId.
+ */
+ public com.google.protobuf.ByteString getProjectIdBytes() {
+ java.lang.Object ref = projectId_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ projectId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Cloud project ID, e.g. "spanner-cloud-systest". + *+ * + *
string project_id = 1;
+ *
+ * @param value The projectId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProjectId(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ projectId_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Cloud project ID, e.g. "spanner-cloud-systest". + *+ * + *
string project_id = 1;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearProjectId() {
+ projectId_ = getDefaultInstance().getProjectId();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Cloud project ID, e.g. "spanner-cloud-systest". + *+ * + *
string project_id = 1;
+ *
+ * @param value The bytes for projectId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setProjectIdBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ projectId_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object instanceId_ = "";
+
+ /**
+ *
+ *
+ * + * Cloud instance ID (not path), e.g. "test-instance". + *+ * + *
string instance_id = 2;
+ *
+ * @return The instanceId.
+ */
+ public java.lang.String getInstanceId() {
+ java.lang.Object ref = instanceId_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ instanceId_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Cloud instance ID (not path), e.g. "test-instance". + *+ * + *
string instance_id = 2;
+ *
+ * @return The bytes for instanceId.
+ */
+ public com.google.protobuf.ByteString getInstanceIdBytes() {
+ java.lang.Object ref = instanceId_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ instanceId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Cloud instance ID (not path), e.g. "test-instance". + *+ * + *
string instance_id = 2;
+ *
+ * @param value The instanceId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setInstanceId(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ instanceId_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Cloud instance ID (not path), e.g. "test-instance". + *+ * + *
string instance_id = 2;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearInstanceId() {
+ instanceId_ = getDefaultInstance().getInstanceId();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Cloud instance ID (not path), e.g. "test-instance". + *+ * + *
string instance_id = 2;
+ *
+ * @param value The bytes for instanceId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setInstanceIdBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ instanceId_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object databaseId_ = "";
+
+ /**
+ *
+ *
+ * + * Cloud database ID (not full path), e.g. "db0". + *+ * + *
string database_id = 3;
+ *
+ * @return The databaseId.
+ */
+ public java.lang.String getDatabaseId() {
+ java.lang.Object ref = databaseId_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ databaseId_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Cloud database ID (not full path), e.g. "db0". + *+ * + *
string database_id = 3;
+ *
+ * @return The bytes for databaseId.
+ */
+ public com.google.protobuf.ByteString getDatabaseIdBytes() {
+ java.lang.Object ref = databaseId_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ databaseId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Cloud database ID (not full path), e.g. "db0". + *+ * + *
string database_id = 3;
+ *
+ * @param value The databaseId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setDatabaseId(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ databaseId_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Cloud database ID (not full path), e.g. "db0". + *+ * + *
string database_id = 3;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearDatabaseId() {
+ databaseId_ = getDefaultInstance().getDatabaseId();
+ bitField0_ = (bitField0_ & ~0x00000004);
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Cloud database ID (not full path), e.g. "db0". + *+ * + *
string database_id = 3;
+ *
+ * @param value The bytes for databaseId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setDatabaseIdBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+ databaseId_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ private java.util.List+ * The split points to add. + *+ * + *
repeated .google.spanner.admin.database.v1.SplitPoints split_points = 4;
+ */
+ public java.util.List+ * The split points to add. + *+ * + *
repeated .google.spanner.admin.database.v1.SplitPoints split_points = 4;
+ */
+ public int getSplitPointsCount() {
+ if (splitPointsBuilder_ == null) {
+ return splitPoints_.size();
+ } else {
+ return splitPointsBuilder_.getCount();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The split points to add. + *+ * + *
repeated .google.spanner.admin.database.v1.SplitPoints split_points = 4;
+ */
+ public com.google.spanner.admin.database.v1.SplitPoints getSplitPoints(int index) {
+ if (splitPointsBuilder_ == null) {
+ return splitPoints_.get(index);
+ } else {
+ return splitPointsBuilder_.getMessage(index);
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The split points to add. + *+ * + *
repeated .google.spanner.admin.database.v1.SplitPoints split_points = 4;
+ */
+ public Builder setSplitPoints(
+ int index, com.google.spanner.admin.database.v1.SplitPoints value) {
+ if (splitPointsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureSplitPointsIsMutable();
+ splitPoints_.set(index, value);
+ onChanged();
+ } else {
+ splitPointsBuilder_.setMessage(index, value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The split points to add. + *+ * + *
repeated .google.spanner.admin.database.v1.SplitPoints split_points = 4;
+ */
+ public Builder setSplitPoints(
+ int index, com.google.spanner.admin.database.v1.SplitPoints.Builder builderForValue) {
+ if (splitPointsBuilder_ == null) {
+ ensureSplitPointsIsMutable();
+ splitPoints_.set(index, builderForValue.build());
+ onChanged();
+ } else {
+ splitPointsBuilder_.setMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The split points to add. + *+ * + *
repeated .google.spanner.admin.database.v1.SplitPoints split_points = 4;
+ */
+ public Builder addSplitPoints(com.google.spanner.admin.database.v1.SplitPoints value) {
+ if (splitPointsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureSplitPointsIsMutable();
+ splitPoints_.add(value);
+ onChanged();
+ } else {
+ splitPointsBuilder_.addMessage(value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The split points to add. + *+ * + *
repeated .google.spanner.admin.database.v1.SplitPoints split_points = 4;
+ */
+ public Builder addSplitPoints(
+ int index, com.google.spanner.admin.database.v1.SplitPoints value) {
+ if (splitPointsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureSplitPointsIsMutable();
+ splitPoints_.add(index, value);
+ onChanged();
+ } else {
+ splitPointsBuilder_.addMessage(index, value);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The split points to add. + *+ * + *
repeated .google.spanner.admin.database.v1.SplitPoints split_points = 4;
+ */
+ public Builder addSplitPoints(
+ com.google.spanner.admin.database.v1.SplitPoints.Builder builderForValue) {
+ if (splitPointsBuilder_ == null) {
+ ensureSplitPointsIsMutable();
+ splitPoints_.add(builderForValue.build());
+ onChanged();
+ } else {
+ splitPointsBuilder_.addMessage(builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The split points to add. + *+ * + *
repeated .google.spanner.admin.database.v1.SplitPoints split_points = 4;
+ */
+ public Builder addSplitPoints(
+ int index, com.google.spanner.admin.database.v1.SplitPoints.Builder builderForValue) {
+ if (splitPointsBuilder_ == null) {
+ ensureSplitPointsIsMutable();
+ splitPoints_.add(index, builderForValue.build());
+ onChanged();
+ } else {
+ splitPointsBuilder_.addMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The split points to add. + *+ * + *
repeated .google.spanner.admin.database.v1.SplitPoints split_points = 4;
+ */
+ public Builder addAllSplitPoints(
+ java.lang.Iterable extends com.google.spanner.admin.database.v1.SplitPoints> values) {
+ if (splitPointsBuilder_ == null) {
+ ensureSplitPointsIsMutable();
+ com.google.protobuf.AbstractMessageLite.Builder.addAll(values, splitPoints_);
+ onChanged();
+ } else {
+ splitPointsBuilder_.addAllMessages(values);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The split points to add. + *+ * + *
repeated .google.spanner.admin.database.v1.SplitPoints split_points = 4;
+ */
+ public Builder clearSplitPoints() {
+ if (splitPointsBuilder_ == null) {
+ splitPoints_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000008);
+ onChanged();
+ } else {
+ splitPointsBuilder_.clear();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The split points to add. + *+ * + *
repeated .google.spanner.admin.database.v1.SplitPoints split_points = 4;
+ */
+ public Builder removeSplitPoints(int index) {
+ if (splitPointsBuilder_ == null) {
+ ensureSplitPointsIsMutable();
+ splitPoints_.remove(index);
+ onChanged();
+ } else {
+ splitPointsBuilder_.remove(index);
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The split points to add. + *+ * + *
repeated .google.spanner.admin.database.v1.SplitPoints split_points = 4;
+ */
+ public com.google.spanner.admin.database.v1.SplitPoints.Builder getSplitPointsBuilder(
+ int index) {
+ return internalGetSplitPointsFieldBuilder().getBuilder(index);
+ }
+
+ /**
+ *
+ *
+ * + * The split points to add. + *+ * + *
repeated .google.spanner.admin.database.v1.SplitPoints split_points = 4;
+ */
+ public com.google.spanner.admin.database.v1.SplitPointsOrBuilder getSplitPointsOrBuilder(
+ int index) {
+ if (splitPointsBuilder_ == null) {
+ return splitPoints_.get(index);
+ } else {
+ return splitPointsBuilder_.getMessageOrBuilder(index);
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The split points to add. + *+ * + *
repeated .google.spanner.admin.database.v1.SplitPoints split_points = 4;
+ */
+ public java.util.List extends com.google.spanner.admin.database.v1.SplitPointsOrBuilder>
+ getSplitPointsOrBuilderList() {
+ if (splitPointsBuilder_ != null) {
+ return splitPointsBuilder_.getMessageOrBuilderList();
+ } else {
+ return java.util.Collections.unmodifiableList(splitPoints_);
+ }
+ }
+
+ /**
+ *
+ *
+ * + * The split points to add. + *+ * + *
repeated .google.spanner.admin.database.v1.SplitPoints split_points = 4;
+ */
+ public com.google.spanner.admin.database.v1.SplitPoints.Builder addSplitPointsBuilder() {
+ return internalGetSplitPointsFieldBuilder()
+ .addBuilder(com.google.spanner.admin.database.v1.SplitPoints.getDefaultInstance());
+ }
+
+ /**
+ *
+ *
+ * + * The split points to add. + *+ * + *
repeated .google.spanner.admin.database.v1.SplitPoints split_points = 4;
+ */
+ public com.google.spanner.admin.database.v1.SplitPoints.Builder addSplitPointsBuilder(
+ int index) {
+ return internalGetSplitPointsFieldBuilder()
+ .addBuilder(index, com.google.spanner.admin.database.v1.SplitPoints.getDefaultInstance());
+ }
+
+ /**
+ *
+ *
+ * + * The split points to add. + *+ * + *
repeated .google.spanner.admin.database.v1.SplitPoints split_points = 4;
+ */
+ public java.util.List+ * Cloud project ID, e.g. "spanner-cloud-systest". + *+ * + *
string project_id = 1;
+ *
+ * @return The projectId.
+ */
+ java.lang.String getProjectId();
+
+ /**
+ *
+ *
+ * + * Cloud project ID, e.g. "spanner-cloud-systest". + *+ * + *
string project_id = 1;
+ *
+ * @return The bytes for projectId.
+ */
+ com.google.protobuf.ByteString getProjectIdBytes();
+
+ /**
+ *
+ *
+ * + * Cloud instance ID (not path), e.g. "test-instance". + *+ * + *
string instance_id = 2;
+ *
+ * @return The instanceId.
+ */
+ java.lang.String getInstanceId();
+
+ /**
+ *
+ *
+ * + * Cloud instance ID (not path), e.g. "test-instance". + *+ * + *
string instance_id = 2;
+ *
+ * @return The bytes for instanceId.
+ */
+ com.google.protobuf.ByteString getInstanceIdBytes();
+
+ /**
+ *
+ *
+ * + * Cloud database ID (not full path), e.g. "db0". + *+ * + *
string database_id = 3;
+ *
+ * @return The databaseId.
+ */
+ java.lang.String getDatabaseId();
+
+ /**
+ *
+ *
+ * + * Cloud database ID (not full path), e.g. "db0". + *+ * + *
string database_id = 3;
+ *
+ * @return The bytes for databaseId.
+ */
+ com.google.protobuf.ByteString getDatabaseIdBytes();
+
+ /**
+ *
+ *
+ * + * The split points to add. + *+ * + *
repeated .google.spanner.admin.database.v1.SplitPoints split_points = 4;
+ */
+ java.util.List+ * The split points to add. + *+ * + *
repeated .google.spanner.admin.database.v1.SplitPoints split_points = 4;
+ */
+ com.google.spanner.admin.database.v1.SplitPoints getSplitPoints(int index);
+
+ /**
+ *
+ *
+ * + * The split points to add. + *+ * + *
repeated .google.spanner.admin.database.v1.SplitPoints split_points = 4;
+ */
+ int getSplitPointsCount();
+
+ /**
+ *
+ *
+ * + * The split points to add. + *+ * + *
repeated .google.spanner.admin.database.v1.SplitPoints split_points = 4;
+ */
+ java.util.List extends com.google.spanner.admin.database.v1.SplitPointsOrBuilder>
+ getSplitPointsOrBuilderList();
+
+ /**
+ *
+ *
+ * + * The split points to add. + *+ * + *
repeated .google.spanner.admin.database.v1.SplitPoints split_points = 4;
+ */
+ com.google.spanner.admin.database.v1.SplitPointsOrBuilder getSplitPointsOrBuilder(int index);
+}
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 bda28769a3b..8aa0c64cbcc 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
@@ -106,6 +106,7 @@ public enum ActionCase
GET_OPERATION(25),
CANCEL_OPERATION(26),
CHANGE_QUORUM_CLOUD_DATABASE(28),
+ ADD_SPLIT_POINTS(29),
ACTION_NOT_SET(0);
private final int value;
@@ -181,6 +182,8 @@ public static ActionCase forNumber(int value) {
return CANCEL_OPERATION;
case 28:
return CHANGE_QUORUM_CLOUD_DATABASE;
+ case 29:
+ return ADD_SPLIT_POINTS;
case 0:
return ACTION_NOT_SET;
default:
@@ -1789,6 +1792,60 @@ public boolean hasChangeQuorumCloudDatabase() {
return com.google.spanner.executor.v1.ChangeQuorumCloudDatabaseAction.getDefaultInstance();
}
+ public static final int ADD_SPLIT_POINTS_FIELD_NUMBER = 29;
+
+ /**
+ *
+ *
+ * + * Action that adds splits to a Cloud Spanner database. + *+ * + *
.google.spanner.executor.v1.AddSplitPointsAction add_split_points = 29;
+ *
+ * @return Whether the addSplitPoints field is set.
+ */
+ @java.lang.Override
+ public boolean hasAddSplitPoints() {
+ return actionCase_ == 29;
+ }
+
+ /**
+ *
+ *
+ * + * Action that adds splits to a Cloud Spanner database. + *+ * + *
.google.spanner.executor.v1.AddSplitPointsAction add_split_points = 29;
+ *
+ * @return The addSplitPoints.
+ */
+ @java.lang.Override
+ public com.google.spanner.executor.v1.AddSplitPointsAction getAddSplitPoints() {
+ if (actionCase_ == 29) {
+ return (com.google.spanner.executor.v1.AddSplitPointsAction) action_;
+ }
+ return com.google.spanner.executor.v1.AddSplitPointsAction.getDefaultInstance();
+ }
+
+ /**
+ *
+ *
+ * + * Action that adds splits to a Cloud Spanner database. + *+ * + *
.google.spanner.executor.v1.AddSplitPointsAction add_split_points = 29;
+ */
+ @java.lang.Override
+ public com.google.spanner.executor.v1.AddSplitPointsActionOrBuilder getAddSplitPointsOrBuilder() {
+ if (actionCase_ == 29) {
+ return (com.google.spanner.executor.v1.AddSplitPointsAction) action_;
+ }
+ return com.google.spanner.executor.v1.AddSplitPointsAction.getDefaultInstance();
+ }
+
private byte memoizedIsInitialized = -1;
@java.lang.Override
@@ -1895,6 +1952,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
output.writeMessage(
28, (com.google.spanner.executor.v1.ChangeQuorumCloudDatabaseAction) action_);
}
+ if (actionCase_ == 29) {
+ output.writeMessage(29, (com.google.spanner.executor.v1.AddSplitPointsAction) action_);
+ }
getUnknownFields().writeTo(output);
}
@@ -2044,6 +2104,11 @@ public int getSerializedSize() {
com.google.protobuf.CodedOutputStream.computeMessageSize(
28, (com.google.spanner.executor.v1.ChangeQuorumCloudDatabaseAction) action_);
}
+ if (actionCase_ == 29) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeMessageSize(
+ 29, (com.google.spanner.executor.v1.AddSplitPointsAction) action_);
+ }
size += getUnknownFields().getSerializedSize();
memoizedSize = size;
return size;
@@ -2152,6 +2217,9 @@ public boolean equals(final java.lang.Object obj) {
if (!getChangeQuorumCloudDatabase().equals(other.getChangeQuorumCloudDatabase()))
return false;
break;
+ case 29:
+ if (!getAddSplitPoints().equals(other.getAddSplitPoints())) return false;
+ break;
case 0:
default:
}
@@ -2279,6 +2347,10 @@ public int hashCode() {
hash = (37 * hash) + CHANGE_QUORUM_CLOUD_DATABASE_FIELD_NUMBER;
hash = (53 * hash) + getChangeQuorumCloudDatabase().hashCode();
break;
+ case 29:
+ hash = (37 * hash) + ADD_SPLIT_POINTS_FIELD_NUMBER;
+ hash = (53 * hash) + getAddSplitPoints().hashCode();
+ break;
case 0:
default:
}
@@ -2507,6 +2579,9 @@ public Builder clear() {
if (changeQuorumCloudDatabaseBuilder_ != null) {
changeQuorumCloudDatabaseBuilder_.clear();
}
+ if (addSplitPointsBuilder_ != null) {
+ addSplitPointsBuilder_.clear();
+ }
actionCase_ = 0;
action_ = null;
return this;
@@ -2635,6 +2710,9 @@ private void buildPartialOneofs(com.google.spanner.executor.v1.AdminAction resul
if (actionCase_ == 28 && changeQuorumCloudDatabaseBuilder_ != null) {
result.action_ = changeQuorumCloudDatabaseBuilder_.build();
}
+ if (actionCase_ == 29 && addSplitPointsBuilder_ != null) {
+ result.action_ = addSplitPointsBuilder_.build();
+ }
}
@java.lang.Override
@@ -2790,6 +2868,11 @@ public Builder mergeFrom(com.google.spanner.executor.v1.AdminAction other) {
mergeChangeQuorumCloudDatabase(other.getChangeQuorumCloudDatabase());
break;
}
+ case ADD_SPLIT_POINTS:
+ {
+ mergeAddSplitPoints(other.getAddSplitPoints());
+ break;
+ }
case ACTION_NOT_SET:
{
break;
@@ -3025,6 +3108,13 @@ public Builder mergeFrom(
actionCase_ = 28;
break;
} // case 226
+ case 234:
+ {
+ input.readMessage(
+ internalGetAddSplitPointsFieldBuilder().getBuilder(), extensionRegistry);
+ actionCase_ = 29;
+ break;
+ } // case 234
default:
{
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
@@ -9490,6 +9580,226 @@ public Builder clearChangeQuorumCloudDatabase() {
return changeQuorumCloudDatabaseBuilder_;
}
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.spanner.executor.v1.AddSplitPointsAction,
+ com.google.spanner.executor.v1.AddSplitPointsAction.Builder,
+ com.google.spanner.executor.v1.AddSplitPointsActionOrBuilder>
+ addSplitPointsBuilder_;
+
+ /**
+ *
+ *
+ * + * Action that adds splits to a Cloud Spanner database. + *+ * + *
.google.spanner.executor.v1.AddSplitPointsAction add_split_points = 29;
+ *
+ * @return Whether the addSplitPoints field is set.
+ */
+ @java.lang.Override
+ public boolean hasAddSplitPoints() {
+ return actionCase_ == 29;
+ }
+
+ /**
+ *
+ *
+ * + * Action that adds splits to a Cloud Spanner database. + *+ * + *
.google.spanner.executor.v1.AddSplitPointsAction add_split_points = 29;
+ *
+ * @return The addSplitPoints.
+ */
+ @java.lang.Override
+ public com.google.spanner.executor.v1.AddSplitPointsAction getAddSplitPoints() {
+ if (addSplitPointsBuilder_ == null) {
+ if (actionCase_ == 29) {
+ return (com.google.spanner.executor.v1.AddSplitPointsAction) action_;
+ }
+ return com.google.spanner.executor.v1.AddSplitPointsAction.getDefaultInstance();
+ } else {
+ if (actionCase_ == 29) {
+ return addSplitPointsBuilder_.getMessage();
+ }
+ return com.google.spanner.executor.v1.AddSplitPointsAction.getDefaultInstance();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Action that adds splits to a Cloud Spanner database. + *+ * + *
.google.spanner.executor.v1.AddSplitPointsAction add_split_points = 29;
+ */
+ public Builder setAddSplitPoints(com.google.spanner.executor.v1.AddSplitPointsAction value) {
+ if (addSplitPointsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ action_ = value;
+ onChanged();
+ } else {
+ addSplitPointsBuilder_.setMessage(value);
+ }
+ actionCase_ = 29;
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Action that adds splits to a Cloud Spanner database. + *+ * + *
.google.spanner.executor.v1.AddSplitPointsAction add_split_points = 29;
+ */
+ public Builder setAddSplitPoints(
+ com.google.spanner.executor.v1.AddSplitPointsAction.Builder builderForValue) {
+ if (addSplitPointsBuilder_ == null) {
+ action_ = builderForValue.build();
+ onChanged();
+ } else {
+ addSplitPointsBuilder_.setMessage(builderForValue.build());
+ }
+ actionCase_ = 29;
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Action that adds splits to a Cloud Spanner database. + *+ * + *
.google.spanner.executor.v1.AddSplitPointsAction add_split_points = 29;
+ */
+ public Builder mergeAddSplitPoints(com.google.spanner.executor.v1.AddSplitPointsAction value) {
+ if (addSplitPointsBuilder_ == null) {
+ if (actionCase_ == 29
+ && action_
+ != com.google.spanner.executor.v1.AddSplitPointsAction.getDefaultInstance()) {
+ action_ =
+ com.google.spanner.executor.v1.AddSplitPointsAction.newBuilder(
+ (com.google.spanner.executor.v1.AddSplitPointsAction) action_)
+ .mergeFrom(value)
+ .buildPartial();
+ } else {
+ action_ = value;
+ }
+ onChanged();
+ } else {
+ if (actionCase_ == 29) {
+ addSplitPointsBuilder_.mergeFrom(value);
+ } else {
+ addSplitPointsBuilder_.setMessage(value);
+ }
+ }
+ actionCase_ = 29;
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Action that adds splits to a Cloud Spanner database. + *+ * + *
.google.spanner.executor.v1.AddSplitPointsAction add_split_points = 29;
+ */
+ public Builder clearAddSplitPoints() {
+ if (addSplitPointsBuilder_ == null) {
+ if (actionCase_ == 29) {
+ actionCase_ = 0;
+ action_ = null;
+ onChanged();
+ }
+ } else {
+ if (actionCase_ == 29) {
+ actionCase_ = 0;
+ action_ = null;
+ }
+ addSplitPointsBuilder_.clear();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Action that adds splits to a Cloud Spanner database. + *+ * + *
.google.spanner.executor.v1.AddSplitPointsAction add_split_points = 29;
+ */
+ public com.google.spanner.executor.v1.AddSplitPointsAction.Builder getAddSplitPointsBuilder() {
+ return internalGetAddSplitPointsFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Action that adds splits to a Cloud Spanner database. + *+ * + *
.google.spanner.executor.v1.AddSplitPointsAction add_split_points = 29;
+ */
+ @java.lang.Override
+ public com.google.spanner.executor.v1.AddSplitPointsActionOrBuilder
+ getAddSplitPointsOrBuilder() {
+ if ((actionCase_ == 29) && (addSplitPointsBuilder_ != null)) {
+ return addSplitPointsBuilder_.getMessageOrBuilder();
+ } else {
+ if (actionCase_ == 29) {
+ return (com.google.spanner.executor.v1.AddSplitPointsAction) action_;
+ }
+ return com.google.spanner.executor.v1.AddSplitPointsAction.getDefaultInstance();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Action that adds splits to a Cloud Spanner database. + *+ * + *
.google.spanner.executor.v1.AddSplitPointsAction add_split_points = 29;
+ */
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.spanner.executor.v1.AddSplitPointsAction,
+ com.google.spanner.executor.v1.AddSplitPointsAction.Builder,
+ com.google.spanner.executor.v1.AddSplitPointsActionOrBuilder>
+ internalGetAddSplitPointsFieldBuilder() {
+ if (addSplitPointsBuilder_ == null) {
+ if (!(actionCase_ == 29)) {
+ action_ = com.google.spanner.executor.v1.AddSplitPointsAction.getDefaultInstance();
+ }
+ addSplitPointsBuilder_ =
+ new com.google.protobuf.SingleFieldBuilder<
+ com.google.spanner.executor.v1.AddSplitPointsAction,
+ com.google.spanner.executor.v1.AddSplitPointsAction.Builder,
+ com.google.spanner.executor.v1.AddSplitPointsActionOrBuilder>(
+ (com.google.spanner.executor.v1.AddSplitPointsAction) action_,
+ getParentForChildren(),
+ isClean());
+ action_ = null;
+ }
+ actionCase_ = 29;
+ onChanged();
+ return addSplitPointsBuilder_;
+ }
+
// @@protoc_insertion_point(builder_scope:google.spanner.executor.v1.AdminAction)
}
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 adc9a83a79a..7d595c13eb8 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
@@ -1125,5 +1125,42 @@ public interface AdminActionOrBuilder
com.google.spanner.executor.v1.ChangeQuorumCloudDatabaseActionOrBuilder
getChangeQuorumCloudDatabaseOrBuilder();
+ /**
+ *
+ *
+ * + * Action that adds splits to a Cloud Spanner database. + *+ * + *
.google.spanner.executor.v1.AddSplitPointsAction add_split_points = 29;
+ *
+ * @return Whether the addSplitPoints field is set.
+ */
+ boolean hasAddSplitPoints();
+
+ /**
+ *
+ *
+ * + * Action that adds splits to a Cloud Spanner database. + *+ * + *
.google.spanner.executor.v1.AddSplitPointsAction add_split_points = 29;
+ *
+ * @return The addSplitPoints.
+ */
+ com.google.spanner.executor.v1.AddSplitPointsAction getAddSplitPoints();
+
+ /**
+ *
+ *
+ * + * Action that adds splits to a Cloud Spanner database. + *+ * + *
.google.spanner.executor.v1.AddSplitPointsAction add_split_points = 29;
+ */
+ com.google.spanner.executor.v1.AddSplitPointsActionOrBuilder getAddSplitPointsOrBuilder();
+
com.google.spanner.executor.v1.AdminAction.ActionCase getActionCase();
}
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 d6414c467f6..fb25206e041 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
@@ -70,6 +70,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
com.google.spanner.executor.v1.BatchDmlAction.Builder.class);
}
+ private int bitField0_;
public static final int UPDATES_FIELD_NUMBER = 1;
@SuppressWarnings("serial")
@@ -146,6 +147,45 @@ public com.google.spanner.executor.v1.QueryActionOrBuilder getUpdatesOrBuilder(i
return updates_.get(index);
}
+ public static final int LAST_STATEMENTS_FIELD_NUMBER = 2;
+ private boolean lastStatements_ = false;
+
+ /**
+ *
+ *
+ * + * Whether to set this request with the last statement option in the + * transaction. The transaction should be committed after processing this + * request. + *+ * + *
optional bool last_statements = 2;
+ *
+ * @return Whether the lastStatements field is set.
+ */
+ @java.lang.Override
+ public boolean hasLastStatements() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Whether to set this request with the last statement option in the + * transaction. The transaction should be committed after processing this + * request. + *+ * + *
optional bool last_statements = 2;
+ *
+ * @return The lastStatements.
+ */
+ @java.lang.Override
+ public boolean getLastStatements() {
+ return lastStatements_;
+ }
+
private byte memoizedIsInitialized = -1;
@java.lang.Override
@@ -163,6 +203,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
for (int i = 0; i < updates_.size(); i++) {
output.writeMessage(1, updates_.get(i));
}
+ if (((bitField0_ & 0x00000001) != 0)) {
+ output.writeBool(2, lastStatements_);
+ }
getUnknownFields().writeTo(output);
}
@@ -175,6 +218,9 @@ public int getSerializedSize() {
for (int i = 0; i < updates_.size(); i++) {
size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, updates_.get(i));
}
+ if (((bitField0_ & 0x00000001) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeBoolSize(2, lastStatements_);
+ }
size += getUnknownFields().getSerializedSize();
memoizedSize = size;
return size;
@@ -192,6 +238,10 @@ public boolean equals(final java.lang.Object obj) {
(com.google.spanner.executor.v1.BatchDmlAction) obj;
if (!getUpdatesList().equals(other.getUpdatesList())) return false;
+ if (hasLastStatements() != other.hasLastStatements()) return false;
+ if (hasLastStatements()) {
+ if (getLastStatements() != other.getLastStatements()) return false;
+ }
if (!getUnknownFields().equals(other.getUnknownFields())) return false;
return true;
}
@@ -207,6 +257,10 @@ public int hashCode() {
hash = (37 * hash) + UPDATES_FIELD_NUMBER;
hash = (53 * hash) + getUpdatesList().hashCode();
}
+ if (hasLastStatements()) {
+ hash = (37 * hash) + LAST_STATEMENTS_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getLastStatements());
+ }
hash = (29 * hash) + getUnknownFields().hashCode();
memoizedHashCode = hash;
return hash;
@@ -354,6 +408,7 @@ public Builder clear() {
updatesBuilder_.clear();
}
bitField0_ = (bitField0_ & ~0x00000001);
+ lastStatements_ = false;
return this;
}
@@ -403,6 +458,12 @@ private void buildPartialRepeatedFields(com.google.spanner.executor.v1.BatchDmlA
private void buildPartial0(com.google.spanner.executor.v1.BatchDmlAction result) {
int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.lastStatements_ = lastStatements_;
+ to_bitField0_ |= 0x00000001;
+ }
+ result.bitField0_ |= to_bitField0_;
}
@java.lang.Override
@@ -444,6 +505,9 @@ public Builder mergeFrom(com.google.spanner.executor.v1.BatchDmlAction other) {
}
}
}
+ if (other.hasLastStatements()) {
+ setLastStatements(other.getLastStatements());
+ }
this.mergeUnknownFields(other.getUnknownFields());
onChanged();
return this;
@@ -483,6 +547,12 @@ public Builder mergeFrom(
}
break;
} // case 10
+ case 16:
+ {
+ lastStatements_ = input.readBool();
+ bitField0_ |= 0x00000002;
+ break;
+ } // case 16
default:
{
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
@@ -868,6 +938,86 @@ public com.google.spanner.executor.v1.QueryAction.Builder addUpdatesBuilder(int
return updatesBuilder_;
}
+ private boolean lastStatements_;
+
+ /**
+ *
+ *
+ * + * Whether to set this request with the last statement option in the + * transaction. The transaction should be committed after processing this + * request. + *+ * + *
optional bool last_statements = 2;
+ *
+ * @return Whether the lastStatements field is set.
+ */
+ @java.lang.Override
+ public boolean hasLastStatements() {
+ return ((bitField0_ & 0x00000002) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Whether to set this request with the last statement option in the + * transaction. The transaction should be committed after processing this + * request. + *+ * + *
optional bool last_statements = 2;
+ *
+ * @return The lastStatements.
+ */
+ @java.lang.Override
+ public boolean getLastStatements() {
+ return lastStatements_;
+ }
+
+ /**
+ *
+ *
+ * + * Whether to set this request with the last statement option in the + * transaction. The transaction should be committed after processing this + * request. + *+ * + *
optional bool last_statements = 2;
+ *
+ * @param value The lastStatements to set.
+ * @return This builder for chaining.
+ */
+ public Builder setLastStatements(boolean value) {
+
+ lastStatements_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Whether to set this request with the last statement option in the + * transaction. The transaction should be committed after processing this + * request. + *+ * + *
optional bool last_statements = 2;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearLastStatements() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ lastStatements_ = false;
+ onChanged();
+ return this;
+ }
+
// @@protoc_insertion_point(builder_scope:google.spanner.executor.v1.BatchDmlAction)
}
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 a446a71a287..b2eefb53454 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
@@ -81,4 +81,34 @@ public interface BatchDmlActionOrBuilder
* repeated .google.spanner.executor.v1.QueryAction updates = 1;
*/
com.google.spanner.executor.v1.QueryActionOrBuilder getUpdatesOrBuilder(int index);
+
+ /**
+ *
+ *
+ * + * Whether to set this request with the last statement option in the + * transaction. The transaction should be committed after processing this + * request. + *+ * + *
optional bool last_statements = 2;
+ *
+ * @return Whether the lastStatements field is set.
+ */
+ boolean hasLastStatements();
+
+ /**
+ *
+ *
+ * + * Whether to set this request with the last statement option in the + * transaction. The transaction should be committed after processing this + * request. + *+ * + *
optional bool last_statements = 2;
+ *
+ * @return The lastStatements.
+ */
+ boolean getLastStatements();
}
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 0a2c8e05ac2..85079577198 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
@@ -208,6 +208,14 @@ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry r
internal_static_google_spanner_executor_v1_ChangeQuorumCloudDatabaseAction_descriptor;
static final com.google.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_google_spanner_executor_v1_ChangeQuorumCloudDatabaseAction_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_spanner_executor_v1_AdaptMessageAction_descriptor;
+ static final com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_google_spanner_executor_v1_AdaptMessageAction_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_spanner_executor_v1_AdaptMessageAction_AttachmentsEntry_descriptor;
+ static final com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_google_spanner_executor_v1_AdaptMessageAction_AttachmentsEntry_fieldAccessorTable;
static final com.google.protobuf.Descriptors.Descriptor
internal_static_google_spanner_executor_v1_ListCloudDatabasesAction_descriptor;
static final com.google.protobuf.GeneratedMessage.FieldAccessorTable
@@ -272,6 +280,10 @@ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry r
internal_static_google_spanner_executor_v1_CancelOperationAction_descriptor;
static final com.google.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_google_spanner_executor_v1_CancelOperationAction_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_spanner_executor_v1_AddSplitPointsAction_descriptor;
+ static final com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_google_spanner_executor_v1_AddSplitPointsAction_fieldAccessorTable;
static final com.google.protobuf.Descriptors.Descriptor
internal_static_google_spanner_executor_v1_StartBatchTransactionAction_descriptor;
static final com.google.protobuf.GeneratedMessage.FieldAccessorTable
@@ -398,7 +410,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\032SpannerAsyncActionResponse\022\021\n"
+ "\taction_id\030\001 \001(\005\022A\n"
+ "\007outcome\030\002"
- + " \001(\01320.google.spanner.executor.v1.SpannerActionOutcome\"\361\n\n\r"
+ + " \001(\01320.google.spanner.executor.v1.SpannerActionOutcome\"\272\013\n\r"
+ "SpannerAction\022\025\n\r"
+ "database_path\030\001 \001(\t\022C\n"
+ "\017spanner_options\030\002 \001"
@@ -430,7 +442,9 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\033execute_change_stream_query\0302 \001(\01324.google.spanner"
+ ".executor.v1.ExecuteChangeStreamQueryH\000\022Q\n"
+ "\022query_cancellation\0303 \001(\01323.google.spa"
- + "nner.executor.v1.QueryCancellationActionH\000B\010\n"
+ + "nner.executor.v1.QueryCancellationActionH\000\022G\n\r"
+ + "adapt_message\0304"
+ + " \001(\0132..google.spanner.executor.v1.AdaptMessageActionH\000B\010\n"
+ "\006action\"\212\001\n\n"
+ "ReadAction\022\r\n"
+ "\005table\030\001 \001(\t\022\022\n"
@@ -445,13 +459,17 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\tParameter\022\014\n"
+ "\004name\030\001 \001(\t\022%\n"
+ "\004type\030\002 \001(\0132\027.google.spanner.v1.Type\0220\n"
- + "\005value\030\003 \001(\0132!.google.spanner.executor.v1.Value\"\206\001\n"
+ + "\005value\030\003 \001(\0132!.google.spanner.executor.v1.Value\"\266\001\n"
+ "\tDmlAction\0227\n"
+ "\006update\030\001 \001(\0132\'.google.spanner.executor.v1.QueryAction\022$\n"
- + "\027autocommit_if_supported\030\002 \001(\010H\000\210\001\001B\032\n"
- + "\030_autocommit_if_supported\"J\n"
+ + "\027autocommit_if_supported\030\002 \001(\010H\000\210\001\001\022\033\n"
+ + "\016last_statement\030\003 \001(\010H\001\210\001\001B\032\n"
+ + "\030_autocommit_if_supportedB\021\n"
+ + "\017_last_statement\"|\n"
+ "\016BatchDmlAction\0228\n"
- + "\007updates\030\001 \003(\0132\'.google.spanner.executor.v1.QueryAction\"\311\003\n"
+ + "\007updates\030\001 \003(\0132\'.google.spanner.executor.v1.QueryAction\022\034\n"
+ + "\017last_statements\030\002 \001(\010H\000\210\001\001B\022\n"
+ + "\020_last_statements\"\311\003\n"
+ "\005Value\022\021\n"
+ "\007is_null\030\001 \001(\010H\000\022\023\n"
+ "\tint_value\030\002 \001(\003H\000\022\024\n\n"
@@ -500,33 +518,33 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\005table\030\001 \001(\t\022E\n"
+ "\006insert\030\002"
+ " \001(\01325.google.spanner.executor.v1.MutationAction.InsertArgs\022E\n"
- + "\006update\030\003 \001(\013"
- + "25.google.spanner.executor.v1.MutationAction.UpdateArgs\022O\n"
- + "\020insert_or_update\030\004 \001("
- + "\01325.google.spanner.executor.v1.MutationAction.InsertArgs\022F\n"
- + "\007replace\030\005 \001(\01325.goog"
- + "le.spanner.executor.v1.MutationAction.InsertArgs\0227\n"
+ + "\006update\030\003"
+ + " \001(\01325.google.spanner.executor.v1.MutationAction.UpdateArgs\022O\n"
+ + "\020insert_or_update\030\004"
+ + " \001(\01325.google.spanner.executor.v1.MutationAction.InsertArgs\022F\n"
+ + "\007replace\030\005"
+ + " \001(\01325.google.spanner.executor.v1.MutationAction.InsertArgs\0227\n"
+ "\013delete_keys\030\006 \001(\0132\".google.spanner.executor.v1.KeySet\"T\n"
+ "\024WriteMutationsAction\022<\n"
+ "\010mutation\030\001 \001(\0132*.google.spanner.executor.v1.MutationAction\"\337\002\n"
+ "\027PartitionedUpdateAction\022i\n"
- + "\007options\030\001 \001(\0132S.google.spanner.executor.v1.PartitionedUpd"
- + "ateAction.ExecutePartitionedUpdateOptionsH\000\210\001\001\0227\n"
+ + "\007options\030\001 \001(\0132S.google.spanner.executor.v1.Par"
+ + "titionedUpdateAction.ExecutePartitionedUpdateOptionsH\000\210\001\001\0227\n"
+ "\006update\030\002 \001(\0132\'.google.spanner.executor.v1.QueryAction\032\223\001\n"
+ "\037ExecutePartitionedUpdateOptions\022E\n"
- + "\014rpc_priority\030\001 \001("
- + "\0162*.google.spanner.v1.RequestOptions.PriorityH\000\210\001\001\022\020\n"
+ + "\014rpc_priority\030\001"
+ + " \001(\0162*.google.spanner.v1.RequestOptions.PriorityH\000\210\001\001\022\020\n"
+ "\003tag\030\002 \001(\tH\001\210\001\001B\017\n\r"
+ "_rpc_priorityB\006\n"
+ "\004_tagB\n\n"
+ "\010_options\"\256\002\n"
+ "\026StartTransactionAction\022A\n"
- + "\013concurrency\030\001 \001(\0132\'.goog"
- + "le.spanner.executor.v1.ConcurrencyH\000\210\001\001\0228\n"
+ + "\013concurrency\030\001"
+ + " \001(\0132\'.google.spanner.executor.v1.ConcurrencyH\000\210\001\001\0228\n"
+ "\005table\030\002 \003(\0132).google.spanner.executor.v1.TableMetadata\022\030\n"
+ "\020transaction_seed\030\003 \001(\t\022W\n"
- + "\021execution_options\030\004 \001(\01327.google."
- + "spanner.executor.v1.TransactionExecutionOptionsH\001\210\001\001B\016\n"
+ + "\021execution_options\030\004 \001("
+ + "\01327.google.spanner.executor.v1.TransactionExecutionOptionsH\001\210\001\001B\016\n"
+ "\014_concurrencyB\024\n"
+ "\022_execution_options\"\256\002\n"
+ "\013Concurrency\022\033\n"
@@ -546,73 +564,80 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "key_column\030\003 \003(\0132*.google.spanner.executor.v1.ColumnMetadata\"E\n"
+ "\016ColumnMetadata\022\014\n"
+ "\004name\030\001 \001(\t\022%\n"
- + "\004type\030\002 \001(\0132\027.google.spanner.v1.Type\"1\n"
+ + "\004type\030\002 \001(\0132\027.google.spanner.v1.Type\"\357\001\n"
+ "\033TransactionExecutionOptions\022\022\n\n"
- + "optimistic\030\001 \001(\010\"\230\001\n"
+ + "optimistic\030\001 \001(\010\022#\n"
+ + "\033exclude_from_change_streams\030\002 \001(\010\022\037\n"
+ + "\027serializable_optimistic\030\003 \001(\010\022%\n"
+ + "\035snapshot_isolation_optimistic\030\004 \001(\010\022&\n"
+ + "\036snapshot_isolation_pessimistic\030\005 \001(\010\022\'\n"
+ + "\037exclude_txn_from_change_streams\030\006 \001(\010\"\230\001\n"
+ "\027FinishTransactionAction\022F\n"
- + "\004mode\030\001 \001(\01628.go"
- + "ogle.spanner.executor.v1.FinishTransactionAction.Mode\"5\n"
+ + "\004mode\030\001 \001(\01628."
+ + "google.spanner.executor.v1.FinishTransactionAction.Mode\"5\n"
+ "\004Mode\022\024\n"
+ "\020MODE_UNSPECIFIED\020\000\022\n\n"
+ "\006COMMIT\020\001\022\013\n"
- + "\007ABANDON\020\002\"\310\023\n"
+ + "\007ABANDON\020\002\"\226\024\n"
+ "\013AdminAction\022a\n"
- + "\033create_user_instance_config\030\001 \001("
- + "\0132:.google.spanner.executor.v1.CreateUserInstanceConfigActionH\000\022a\n"
- + "\033update_user_instance_config\030\002 \001(\0132:.google.spanner.ex"
- + "ecutor.v1.UpdateUserInstanceConfigActionH\000\022a\n"
- + "\033delete_user_instance_config\030\003 \001(\0132"
- + ":.google.spanner.executor.v1.DeleteUserInstanceConfigActionH\000\022]\n"
- + "\031get_cloud_instance_config\030\004"
- + " \001(\01328.google.spanner.executor.v1.GetCloudInstanceConfigActionH\000\022[\n"
- + "\025list_instance_configs\030\005 \001(\0132:.google.spa"
- + "nner.executor.v1.ListCloudInstanceConfigsActionH\000\022V\n"
- + "\025create_cloud_instance\030\006 \001(\013"
- + "25.google.spanner.executor.v1.CreateCloudInstanceActionH\000\022V\n"
+ + "\033create_user_instance_config\030\001 "
+ + "\001(\0132:.google.spanner.executor.v1.CreateUserInstanceConfigActionH\000\022a\n"
+ + "\033update_user_instance_config\030\002 \001(\0132:.google.spanner."
+ + "executor.v1.UpdateUserInstanceConfigActionH\000\022a\n"
+ + "\033delete_user_instance_config\030\003 \001("
+ + "\0132:.google.spanner.executor.v1.DeleteUserInstanceConfigActionH\000\022]\n"
+ + "\031get_cloud_instance_config\030\004 \001(\01328.google.spanner.exec"
+ + "utor.v1.GetCloudInstanceConfigActionH\000\022[\n"
+ + "\025list_instance_configs\030\005 \001(\0132:.google.s"
+ + "panner.executor.v1.ListCloudInstanceConfigsActionH\000\022V\n"
+ + "\025create_cloud_instance\030\006 \001"
+ + "(\01325.google.spanner.executor.v1.CreateCloudInstanceActionH\000\022V\n"
+ "\025update_cloud_instance\030\007"
+ " \001(\01325.google.spanner.executor.v1.UpdateCloudInstanceActionH\000\022V\n"
+ "\025delete_cloud_instance\030\010"
+ " \001(\01325.google.spanner.executor.v1.DeleteCloudInstanceActionH\000\022T\n"
- + "\024list_cloud_instances\030\t \001(\01324.google.spanner"
- + ".executor.v1.ListCloudInstancesActionH\000\022P\n"
+ + "\024list_cloud_instances\030\t \001(\01324.google.spann"
+ + "er.executor.v1.ListCloudInstancesActionH\000\022P\n"
+ "\022get_cloud_instance\030\n"
+ " \001(\01322.google.spanner.executor.v1.GetCloudInstanceActionH\000\022V\n"
- + "\025create_cloud_database\030\013 \001(\01325.googl"
- + "e.spanner.executor.v1.CreateCloudDatabaseActionH\000\022]\n"
+ + "\025create_cloud_database\030\013 \001(\01325.goo"
+ + "gle.spanner.executor.v1.CreateCloudDatabaseActionH\000\022]\n"
+ "\031update_cloud_database_ddl\030\014"
+ " \001(\01328.google.spanner.executor.v1.UpdateCloudDatabaseDdlActionH\000\022V\n"
+ "\025update_cloud_database\030\033"
+ " \001(\01325.google.spanner.executor.v1.UpdateCloudDatabaseActionH\000\022R\n"
+ "\023drop_cloud_database\030\r"
+ " \001(\01323.google.spanner.executor.v1.DropCloudDatabaseActionH\000\022T\n"
- + "\024list_cloud_databases\030\016 \001(\01324.google.span"
- + "ner.executor.v1.ListCloudDatabasesActionH\000\022g\n"
- + "\036list_cloud_database_operations\030\017 \001"
- + "(\0132=.google.spanner.executor.v1.ListCloudDatabaseOperationsActionH\000\022X\n"
- + "\026restore_cloud_database\030\020"
- + " \001(\01326.google.spanner.executor.v1.RestoreCloudDatabaseActionH\000\022P\n"
- + "\022get_cloud_database\030\021 \001(\01322.google.spann"
- + "er.executor.v1.GetCloudDatabaseActionH\000\022R\n"
- + "\023create_cloud_backup\030\022 \001(\01323.google.sp"
- + "anner.executor.v1.CreateCloudBackupActionH\000\022N\n"
- + "\021copy_cloud_backup\030\023 \001(\01321.google."
- + "spanner.executor.v1.CopyCloudBackupActionH\000\022L\n"
- + "\020get_cloud_backup\030\024 \001(\01320.google.s"
- + "panner.executor.v1.GetCloudBackupActionH\000\022R\n"
- + "\023update_cloud_backup\030\025 \001(\01323.google."
- + "spanner.executor.v1.UpdateCloudBackupActionH\000\022R\n"
- + "\023delete_cloud_backup\030\026 \001(\01323.goo"
- + "gle.spanner.executor.v1.DeleteCloudBackupActionH\000\022P\n"
- + "\022list_cloud_backups\030\027 \001(\01322."
- + "google.spanner.executor.v1.ListCloudBackupsActionH\000\022c\n"
+ + "\024list_cloud_databases\030\016 \001(\01324.google.sp"
+ + "anner.executor.v1.ListCloudDatabasesActionH\000\022g\n"
+ + "\036list_cloud_database_operations\030\017"
+ + " \001(\0132=.google.spanner.executor.v1.ListCloudDatabaseOperationsActionH\000\022X\n"
+ + "\026restore_cloud_database\030\020 \001(\01326.google.spanner.e"
+ + "xecutor.v1.RestoreCloudDatabaseActionH\000\022P\n"
+ + "\022get_cloud_database\030\021 \001(\01322.google.spa"
+ + "nner.executor.v1.GetCloudDatabaseActionH\000\022R\n"
+ + "\023create_cloud_backup\030\022 \001(\01323.google."
+ + "spanner.executor.v1.CreateCloudBackupActionH\000\022N\n"
+ + "\021copy_cloud_backup\030\023 \001(\01321.googl"
+ + "e.spanner.executor.v1.CopyCloudBackupActionH\000\022L\n"
+ + "\020get_cloud_backup\030\024 \001(\01320.google"
+ + ".spanner.executor.v1.GetCloudBackupActionH\000\022R\n"
+ + "\023update_cloud_backup\030\025 \001(\01323.googl"
+ + "e.spanner.executor.v1.UpdateCloudBackupActionH\000\022R\n"
+ + "\023delete_cloud_backup\030\026 \001(\01323.g"
+ + "oogle.spanner.executor.v1.DeleteCloudBackupActionH\000\022P\n"
+ + "\022list_cloud_backups\030\027 \001(\0132"
+ + "2.google.spanner.executor.v1.ListCloudBackupsActionH\000\022c\n"
+ "\034list_cloud_backup_operations\030\030"
+ " \001(\0132;.google.spanner.executor.v1.ListCloudBackupOperationsActionH\000\022G\n\r"
+ "get_operation\030\031"
+ " \001(\0132..google.spanner.executor.v1.GetOperationActionH\000\022M\n"
+ "\020cancel_operation\030\032"
+ " \001(\01321.google.spanner.executor.v1.CancelOperationActionH\000\022c\n"
- + "\034change_quorum_cloud_database\030\034 \001(\0132;.google.spanner."
- + "executor.v1.ChangeQuorumCloudDatabaseActionH\000B\010\n"
+ + "\034change_quorum_cloud_database\030\034 \001(\0132;.google.spanne"
+ + "r.executor.v1.ChangeQuorumCloudDatabaseActionH\000\022L\n"
+ + "\020add_split_points\030\035 \001(\01320.goog"
+ + "le.spanner.executor.v1.AddSplitPointsActionH\000B\010\n"
+ "\006action\"\245\001\n"
+ "\036CreateUserInstanceConfigAction\022\026\n"
+ "\016user_config_id\030\001 \001(\t\022\022\n\n"
@@ -641,7 +666,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\tpage_size\030\002 \001(\005H\000\210\001\001\022\027\n\n"
+ "page_token\030\003 \001(\tH\001\210\001\001B\014\n\n"
+ "_page_sizeB\r\n"
- + "\013_page_token\"\253\003\n"
+ + "\013_page_token\"\360\003\n"
+ "\031CreateCloudInstanceAction\022\023\n"
+ "\013instance_id\030\001 \001(\t\022\022\n\n"
+ "project_id\030\002 \001(\t\022\032\n"
@@ -651,23 +676,27 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\022autoscaling_config\030\007 \001(\01323.go"
+ "ogle.spanner.admin.instance.v1.AutoscalingConfigH\002\210\001\001\022Q\n"
+ "\006labels\030\005 \003(\0132A.google.s"
- + "panner.executor.v1.CreateCloudInstanceAction.LabelsEntry\032-\n"
+ + "panner.executor.v1.CreateCloudInstanceAction.LabelsEntry\022C\n"
+ + "\007edition\030\010 \001(\01622.goog"
+ + "le.spanner.admin.instance.v1.Instance.Edition\032-\n"
+ "\013LabelsEntry\022\013\n"
+ "\003key\030\001 \001(\t\022\r\n"
+ "\005value\030\002 \001(\t:\0028\001B\r\n"
+ "\013_node_countB\023\n"
+ "\021_processing_unitsB\025\n"
- + "\023_autoscaling_config\"\273\003\n"
+ + "\023_autoscaling_config\"\200\004\n"
+ "\031UpdateCloudInstanceAction\022\023\n"
+ "\013instance_id\030\001 \001(\t\022\022\n\n"
+ "project_id\030\002 \001(\t\022\031\n"
+ "\014display_name\030\003 \001(\tH\000\210\001\001\022\027\n\n"
+ "node_count\030\004 \001(\005H\001\210\001\001\022\035\n"
+ "\020processing_units\030\005 \001(\005H\002\210\001\001\022T\n"
- + "\022autoscaling_config\030\007 \001(\01323.google.spanne"
- + "r.admin.instance.v1.AutoscalingConfigH\003\210\001\001\022Q\n"
- + "\006labels\030\006 \003(\0132A.google.spanner.exec"
- + "utor.v1.UpdateCloudInstanceAction.LabelsEntry\032-\n"
+ + "\022autoscaling_config\030\007"
+ + " \001(\01323.google.spanner.admin.instance.v1.AutoscalingConfigH\003\210\001\001\022Q\n"
+ + "\006labels\030\006"
+ + " \003(\0132A.google.spanner.executor.v1.UpdateCloudInstanceAction.LabelsEntry\022C\n"
+ + "\007edition\030\010"
+ + " \001(\01622.google.spanner.admin.instance.v1.Instance.Edition\032-\n"
+ "\013LabelsEntry\022\013\n"
+ "\003key\030\001 \001(\t\022\r\n"
+ "\005value\030\002 \001(\t:\0028\001B\017\n\r"
@@ -683,8 +712,8 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "project_id\030\002 \001(\t\022\023\n"
+ "\013database_id\030\003 \001(\t\022\025\n\r"
+ "sdl_statement\030\004 \003(\t\022M\n"
- + "\021encryption_config\030\005"
- + " \001(\01322.google.spanner.admin.database.v1.EncryptionConfig\022\024\n"
+ + "\021encryption_config\030\005 \001(\01322"
+ + ".google.spanner.admin.database.v1.EncryptionConfig\022\024\n"
+ "\007dialect\030\006 \001(\tH\000\210\001\001\022\036\n"
+ "\021proto_descriptors\030\007 \001(\014H\001\210\001\001B\n\n"
+ "\010_dialectB\024\n"
@@ -709,7 +738,18 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\037ChangeQuorumCloudDatabaseAction\022\031\n"
+ "\014database_uri\030\001 \001(\tH\000\210\001\001\022\031\n"
+ "\021serving_locations\030\002 \003(\tB\017\n\r"
- + "_database_uri\"j\n"
+ + "_database_uri\"\204\002\n"
+ + "\022AdaptMessageAction\022\024\n"
+ + "\014database_uri\030\001 \001(\t\022\020\n"
+ + "\010protocol\030\002 \001(\t\022\017\n"
+ + "\007payload\030\003 \001(\014\022T\n"
+ + "\013attachments\030\004 \003(\0132?.goog"
+ + "le.spanner.executor.v1.AdaptMessageAction.AttachmentsEntry\022\r\n"
+ + "\005query\030\005 \001(\t\022\034\n"
+ + "\024prepare_then_execute\030\006 \001(\010\0322\n"
+ + "\020AttachmentsEntry\022\013\n"
+ + "\003key\030\001 \001(\t\022\r\n"
+ + "\005value\030\002 \001(\t:\0028\001\"j\n"
+ "\030ListCloudDatabasesAction\022\022\n\n"
+ "project_id\030\001 \001(\t\022\023\n"
+ "\013instance_id\030\002 \001(\t\022\021\n"
@@ -718,7 +758,8 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\030ListCloudInstancesAction\022\022\n\n"
+ "project_id\030\001 \001(\t\022\023\n"
+ "\006filter\030\002 \001(\tH\000\210\001\001\022\026\n"
- + "\tpage_size\030\003 \001(\005H\001\210\001\001\022\027\n\n"
+ + "\tpage_size\030\003 \001(\005H\001\210\001\001\022\027\n"
+ + "\n"
+ "page_token\030\004 \001(\tH\002\210\001\001B\t\n"
+ "\007_filterB\014\n\n"
+ "_page_sizeB\r\n"
@@ -738,9 +779,10 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\tbackup_id\030\003 \001(\t\022\034\n"
+ "\024database_instance_id\030\004 \001(\t\022\023\n"
+ "\013database_id\030\005 \001(\t\022M\n"
- + "\021encryption_config\030\007 \001(\01322"
- + ".google.spanner.admin.database.v1.EncryptionConfig\"V\n"
- + "\026GetCloudDatabaseAction\022\022\n\n"
+ + "\021encryption_config\030\007 \001(\0132"
+ + "2.google.spanner.admin.database.v1.EncryptionConfig\"V\n"
+ + "\026GetCloudDatabaseAction\022\022\n"
+ + "\n"
+ "project_id\030\001 \001(\t\022\023\n"
+ "\013instance_id\030\002 \001(\t\022\023\n"
+ "\013database_id\030\003 \001(\t\"\267\002\n"
@@ -792,7 +834,13 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\020long_running_sql\030\001 \001(\t\022\024\n"
+ "\014cancel_query\030\002 \001(\t\"*\n"
+ "\025CancelOperationAction\022\021\n"
- + "\toperation\030\001 \001(\t\"\210\001\n"
+ + "\toperation\030\001 \001(\t\"\231\001\n"
+ + "\024AddSplitPointsAction\022\022\n\n"
+ + "project_id\030\001 \001(\t\022\023\n"
+ + "\013instance_id\030\002 \001(\t\022\023\n"
+ + "\013database_id\030\003 \001(\t\022C\n"
+ + "\014split_points\030\004"
+ + " \003(\0132-.google.spanner.admin.database.v1.SplitPoints\"\210\001\n"
+ "\033StartBatchTransactionAction\0224\n"
+ "\016batch_txn_time\030\001 \001(\0132\032.google.protobuf.TimestampH\000\022\r\n"
+ "\003tid\030\002 \001(\014H\000\022\033\n"
@@ -834,41 +882,43 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\020_partition_tokenB\031\n"
+ "\027_heartbeat_millisecondsB\023\n"
+ "\021_deadline_secondsB\026\n"
- + "\024_cloud_database_role\"\242\005\n"
+ + "\024_cloud_database_role\"\200\006\n"
+ "\024SpannerActionOutcome\022\'\n"
+ "\006status\030\001 \001(\0132\022.google.rpc.StatusH\000\210\001\001\0224\n"
+ "\013commit_time\030\002"
+ " \001(\0132\032.google.protobuf.TimestampH\001\210\001\001\022@\n"
+ "\013read_result\030\003"
+ " \001(\0132&.google.spanner.executor.v1.ReadResultH\002\210\001\001\022B\n"
- + "\014query_result\030\004 \001(\013"
- + "2\'.google.spanner.executor.v1.QueryResultH\003\210\001\001\022\"\n"
+ + "\014query_result\030\004 \001(\0132\'."
+ + "google.spanner.executor.v1.QueryResultH\003\210\001\001\022\"\n"
+ "\025transaction_restarted\030\005 \001(\010H\004\210\001\001\022\031\n"
+ "\014batch_txn_id\030\006 \001(\014H\005\210\001\001\022@\n"
+ "\014db_partition\030\007 \003(\0132*.google.spanner.executor.v1.BatchPartition\022B\n"
- + "\014admin_result\030\010 \001(\0132\'."
- + "google.spanner.executor.v1.AdminResultH\006\210\001\001\022\031\n"
+ + "\014admin_result\030\010 \001(\0132\'.goo"
+ + "gle.spanner.executor.v1.AdminResultH\006\210\001\001\022\031\n"
+ "\021dml_rows_modified\030\t \003(\003\022M\n"
+ "\025change_stream_records\030\n"
- + " \003(\0132..google.spanner.executor.v1.ChangeStreamRecordB\t\n"
+ + " \003(\0132..google.spanner.executor.v1.ChangeStreamRecord\0222\n"
+ + "%snapshot_isolation_txn_read_timestamp\030\013 \001(\003H\007\210\001\001B\t\n"
+ "\007_statusB\016\n"
+ "\014_commit_timeB\016\n"
+ "\014_read_resultB\017\n\r"
+ "_query_resultB\030\n"
+ "\026_transaction_restartedB\017\n\r"
+ "_batch_txn_idB\017\n\r"
- + "_admin_result\"\231\003\n"
+ + "_admin_resultB(\n"
+ + "&_snapshot_isolation_txn_read_timestamp\"\231\003\n"
+ "\013AdminResult\022H\n"
- + "\017backup_response\030\001 \001(\0132/.google."
- + "spanner.executor.v1.CloudBackupResponse\022I\n"
- + "\022operation_response\030\002"
- + " \001(\0132-.google.spanner.executor.v1.OperationResponse\022L\n"
- + "\021database_response\030\003"
- + " \001(\01321.google.spanner.executor.v1.CloudDatabaseResponse\022L\n"
- + "\021instance_response\030\004"
- + " \001(\01321.google.spanner.executor.v1.CloudInstanceResponse\022Y\n"
- + "\030instance_config_response\030\005 \001(\01327.google.spanne"
- + "r.executor.v1.CloudInstanceConfigResponse\"\353\001\n"
+ + "\017backup_response\030\001 \001("
+ + "\0132/.google.spanner.executor.v1.CloudBackupResponse\022I\n"
+ + "\022operation_response\030\002 \001(\0132-"
+ + ".google.spanner.executor.v1.OperationResponse\022L\n"
+ + "\021database_response\030\003 \001(\01321.googl",
+ "e.spanner.executor.v1.CloudDatabaseResponse\022L\n"
+ + "\021instance_response\030\004 \001(\01321.google."
+ + "spanner.executor.v1.CloudInstanceResponse\022Y\n"
+ + "\030instance_config_response\030\005 \001(\01327.go"
+ + "ogle.spanner.executor.v1.CloudInstanceConfigResponse\"\353\001\n"
+ "\023CloudBackupResponse\022@\n"
+ "\016listed_backups\030\001 \003(\0132(.google.spanner.admin.database.v1.Backup\022?\n"
+ "\030listed_backup_operations\030\002"
@@ -885,19 +935,19 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\017next_page_token\030\002 \001(\t\022<\n"
+ "\010instance\030\003 \001(\0132*.google.spanner.admin.instance.v1.Instance\"\324\001\n"
+ "\033CloudInstanceConfigResponse\022Q\n"
- + "\027listed_instance_configs\030\001 \003"
- + "(\01320.google.spanner.admin.instance.v1.InstanceConfig\022\027\n"
+ + "\027listed_instance_configs\030\001"
+ + " \003(\01320.google.spanner.admin.instance.v1.InstanceConfig\022\027\n"
+ "\017next_page_token\030\002 \001(\t\022I\n"
- + "\017instance_config\030\003"
- + " \001(\01320.google.spanner.admin.instance.v1.InstanceConfig\"\367\001\n"
+ + "\017instance_config\030\003 \001(\01320.goog"
+ + "le.spanner.admin.instance.v1.InstanceConfig\"\367\001\n"
+ "\025CloudDatabaseResponse\022D\n"
- + "\020listed_databases\030\001 \003(\0132*.google.spanner.admin.database.v1.",
- "Database\022A\n"
+ + "\020listed_databases\030\001"
+ + " \003(\0132*.google.spanner.admin.database.v1.Database\022A\n"
+ "\032listed_database_operations\030\002"
+ " \003(\0132\035.google.longrunning.Operation\022\027\n"
+ "\017next_page_token\030\003 \001(\t\022<\n"
- + "\010database\030\004 \001(\0132*"
- + ".google.spanner.admin.database.v1.Database\"\336\001\n\n"
+ + "\010database\030\004"
+ + " \001(\0132*.google.spanner.admin.database.v1.Database\"\336\001\n\n"
+ "ReadResult\022\r\n"
+ "\005table\030\001 \001(\t\022\022\n"
+ "\005index\030\002 \001(\tH\000\210\001\001\022\032\n\r"
@@ -916,8 +966,8 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\022ChangeStreamRecord\022C\n"
+ "\013data_change\030\001"
+ " \001(\0132,.google.spanner.executor.v1.DataChangeRecordH\000\022L\n"
- + "\017child_partition\030\002 \001(\0132"
- + "1.google.spanner.executor.v1.ChildPartitionsRecordH\000\022@\n"
+ + "\017child_partition\030\002"
+ + " \001(\01321.google.spanner.executor.v1.ChildPartitionsRecordH\000\022@\n"
+ "\theartbeat\030\003 \001(\0132+.google.spanner.executor.v1.HeartbeatRecordH\000B\010\n"
+ "\006record\"\330\004\n"
+ "\020DataChangeRecord\022/\n"
@@ -926,8 +976,8 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\016transaction_id\030\003 \001(\t\022\026\n"
+ "\016is_last_record\030\004 \001(\010\022\r\n"
+ "\005table\030\005 \001(\t\022M\n"
- + "\014column_types\030\006 \003(\01327.google.sp"
- + "anner.executor.v1.DataChangeRecord.ColumnType\022>\n"
+ + "\014column_types\030\006 \003(\0132"
+ + "7.google.spanner.executor.v1.DataChangeRecord.ColumnType\022>\n"
+ "\004mods\030\007 \003(\01320.google.spanner.executor.v1.DataChangeRecord.Mod\022\020\n"
+ "\010mod_type\030\010 \001(\t\022\032\n"
+ "\022value_capture_type\030\t \001(\t\022\024\n"
@@ -946,28 +996,27 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\004keys\030\001 \001(\t\022\022\n\n"
+ "new_values\030\002 \001(\t\022\022\n\n"
+ "old_values\030\003 \001(\t\"\376\001\n"
- + "\025ChildPartitionsRecord\022.\n"
- + "\n"
+ + "\025ChildPartitionsRecord\022.\n\n"
+ "start_time\030\001 \001(\0132\032.google.protobuf.Timestamp\022\027\n"
+ "\017record_sequence\030\002 \001(\t\022Z\n"
- + "\020child_partitions\030\003 \003(\0132@.google.spanner.execut"
- + "or.v1.ChildPartitionsRecord.ChildPartition\032@\n"
+ + "\020child_partitions\030\003 \003(\0132@.google.spa"
+ + "nner.executor.v1.ChildPartitionsRecord.ChildPartition\032@\n"
+ "\016ChildPartition\022\r\n"
+ "\005token\030\001 \001(\t\022\037\n"
+ "\027parent_partition_tokens\030\002 \003(\t\"E\n"
+ "\017HeartbeatRecord\0222\n"
+ "\016heartbeat_time\030\001 \001(\0132\032.google.protobuf.Timestamp\"^\n"
+ "\016SpannerOptions\022L\n"
- + "\024session_pool_options\030\001"
- + " \001(\0132..google.spanner.executor.v1.SessionPoolOptions\"-\n"
+ + "\024session_pool_options\030\001 \001(\0132."
+ + ".google.spanner.executor.v1.SessionPoolOptions\"-\n"
+ "\022SessionPoolOptions\022\027\n"
+ "\017use_multiplexed\030\001 \001(\0102\314\001\n"
+ "\024SpannerExecutorProxy\022\211\001\n"
- + "\022ExecuteActionAsync\0225.google.spanner.executor.v1."
- + "SpannerAsyncActionRequest\0326.google.spanner.executor.v1.SpannerAsyncActionRespons"
- + "e\"\000(\0010\001\032(\312A%spanner-cloud-executor.googleapis.comBx\n"
- + "\036com.google.spanner.executor.v1B\022CloudExecutorProtoP\001Z@cloud.google."
- + "com/go/spanner/executor/apiv1/executorpb;executorpbb\006proto3"
+ + "\022ExecuteActionAsync\0225.google.spanner.e"
+ + "xecutor.v1.SpannerAsyncActionRequest\0326.google.spanner.executor.v1.SpannerAsyncAc"
+ + "tionResponse\"\000(\0010\001\032(\312A%spanner-cloud-executor.googleapis.comBx\n"
+ + "\036com.google.spanner.executor.v1B\022CloudExecutorProtoP\001Z@cl"
+ + "oud.google.com/go/spanner/executor/apiv1/executorpb;executorpbb\006proto3"
};
descriptor =
com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
@@ -1026,6 +1075,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"ExecutePartition",
"ExecuteChangeStreamQuery",
"QueryCancellation",
+ "AdaptMessage",
"Action",
});
internal_static_google_spanner_executor_v1_ReadAction_descriptor =
@@ -1058,7 +1108,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_DmlAction_descriptor,
new java.lang.String[] {
- "Update", "AutocommitIfSupported",
+ "Update", "AutocommitIfSupported", "LastStatement",
});
internal_static_google_spanner_executor_v1_BatchDmlAction_descriptor =
getDescriptor().getMessageType(6);
@@ -1066,7 +1116,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_BatchDmlAction_descriptor,
new java.lang.String[] {
- "Updates",
+ "Updates", "LastStatements",
});
internal_static_google_spanner_executor_v1_Value_descriptor = getDescriptor().getMessageType(7);
internal_static_google_spanner_executor_v1_Value_fieldAccessorTable =
@@ -1216,6 +1266,11 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
internal_static_google_spanner_executor_v1_TransactionExecutionOptions_descriptor,
new java.lang.String[] {
"Optimistic",
+ "ExcludeFromChangeStreams",
+ "SerializableOptimistic",
+ "SnapshotIsolationOptimistic",
+ "SnapshotIsolationPessimistic",
+ "ExcludeTxnFromChangeStreams",
});
internal_static_google_spanner_executor_v1_FinishTransactionAction_descriptor =
getDescriptor().getMessageType(19);
@@ -1259,6 +1314,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"GetOperation",
"CancelOperation",
"ChangeQuorumCloudDatabase",
+ "AddSplitPoints",
"Action",
});
internal_static_google_spanner_executor_v1_CreateUserInstanceConfigAction_descriptor =
@@ -1323,6 +1379,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"ProcessingUnits",
"AutoscalingConfig",
"Labels",
+ "Edition",
});
internal_static_google_spanner_executor_v1_CreateCloudInstanceAction_LabelsEntry_descriptor =
internal_static_google_spanner_executor_v1_CreateCloudInstanceAction_descriptor
@@ -1346,6 +1403,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"ProcessingUnits",
"AutoscalingConfig",
"Labels",
+ "Edition",
});
internal_static_google_spanner_executor_v1_UpdateCloudInstanceAction_LabelsEntry_descriptor =
internal_static_google_spanner_executor_v1_UpdateCloudInstanceAction_descriptor
@@ -1415,8 +1473,24 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
new java.lang.String[] {
"DatabaseUri", "ServingLocations",
});
- internal_static_google_spanner_executor_v1_ListCloudDatabasesAction_descriptor =
+ internal_static_google_spanner_executor_v1_AdaptMessageAction_descriptor =
getDescriptor().getMessageType(34);
+ internal_static_google_spanner_executor_v1_AdaptMessageAction_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_google_spanner_executor_v1_AdaptMessageAction_descriptor,
+ new java.lang.String[] {
+ "DatabaseUri", "Protocol", "Payload", "Attachments", "Query", "PrepareThenExecute",
+ });
+ internal_static_google_spanner_executor_v1_AdaptMessageAction_AttachmentsEntry_descriptor =
+ internal_static_google_spanner_executor_v1_AdaptMessageAction_descriptor.getNestedType(0);
+ internal_static_google_spanner_executor_v1_AdaptMessageAction_AttachmentsEntry_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_google_spanner_executor_v1_AdaptMessageAction_AttachmentsEntry_descriptor,
+ new java.lang.String[] {
+ "Key", "Value",
+ });
+ internal_static_google_spanner_executor_v1_ListCloudDatabasesAction_descriptor =
+ getDescriptor().getMessageType(35);
internal_static_google_spanner_executor_v1_ListCloudDatabasesAction_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_ListCloudDatabasesAction_descriptor,
@@ -1424,7 +1498,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"ProjectId", "InstanceId", "PageSize", "PageToken",
});
internal_static_google_spanner_executor_v1_ListCloudInstancesAction_descriptor =
- getDescriptor().getMessageType(35);
+ getDescriptor().getMessageType(36);
internal_static_google_spanner_executor_v1_ListCloudInstancesAction_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_ListCloudInstancesAction_descriptor,
@@ -1432,7 +1506,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"ProjectId", "Filter", "PageSize", "PageToken",
});
internal_static_google_spanner_executor_v1_GetCloudInstanceAction_descriptor =
- getDescriptor().getMessageType(36);
+ getDescriptor().getMessageType(37);
internal_static_google_spanner_executor_v1_GetCloudInstanceAction_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_GetCloudInstanceAction_descriptor,
@@ -1440,7 +1514,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"ProjectId", "InstanceId",
});
internal_static_google_spanner_executor_v1_ListCloudDatabaseOperationsAction_descriptor =
- getDescriptor().getMessageType(37);
+ getDescriptor().getMessageType(38);
internal_static_google_spanner_executor_v1_ListCloudDatabaseOperationsAction_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_ListCloudDatabaseOperationsAction_descriptor,
@@ -1448,7 +1522,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"ProjectId", "InstanceId", "Filter", "PageSize", "PageToken",
});
internal_static_google_spanner_executor_v1_RestoreCloudDatabaseAction_descriptor =
- getDescriptor().getMessageType(38);
+ getDescriptor().getMessageType(39);
internal_static_google_spanner_executor_v1_RestoreCloudDatabaseAction_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_RestoreCloudDatabaseAction_descriptor,
@@ -1461,7 +1535,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"EncryptionConfig",
});
internal_static_google_spanner_executor_v1_GetCloudDatabaseAction_descriptor =
- getDescriptor().getMessageType(39);
+ getDescriptor().getMessageType(40);
internal_static_google_spanner_executor_v1_GetCloudDatabaseAction_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_GetCloudDatabaseAction_descriptor,
@@ -1469,7 +1543,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"ProjectId", "InstanceId", "DatabaseId",
});
internal_static_google_spanner_executor_v1_CreateCloudBackupAction_descriptor =
- getDescriptor().getMessageType(40);
+ getDescriptor().getMessageType(41);
internal_static_google_spanner_executor_v1_CreateCloudBackupAction_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_CreateCloudBackupAction_descriptor,
@@ -1483,7 +1557,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"EncryptionConfig",
});
internal_static_google_spanner_executor_v1_CopyCloudBackupAction_descriptor =
- getDescriptor().getMessageType(41);
+ getDescriptor().getMessageType(42);
internal_static_google_spanner_executor_v1_CopyCloudBackupAction_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_CopyCloudBackupAction_descriptor,
@@ -1491,7 +1565,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"ProjectId", "InstanceId", "BackupId", "SourceBackup", "ExpireTime",
});
internal_static_google_spanner_executor_v1_GetCloudBackupAction_descriptor =
- getDescriptor().getMessageType(42);
+ getDescriptor().getMessageType(43);
internal_static_google_spanner_executor_v1_GetCloudBackupAction_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_GetCloudBackupAction_descriptor,
@@ -1499,7 +1573,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"ProjectId", "InstanceId", "BackupId",
});
internal_static_google_spanner_executor_v1_UpdateCloudBackupAction_descriptor =
- getDescriptor().getMessageType(43);
+ getDescriptor().getMessageType(44);
internal_static_google_spanner_executor_v1_UpdateCloudBackupAction_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_UpdateCloudBackupAction_descriptor,
@@ -1507,7 +1581,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"ProjectId", "InstanceId", "BackupId", "ExpireTime",
});
internal_static_google_spanner_executor_v1_DeleteCloudBackupAction_descriptor =
- getDescriptor().getMessageType(44);
+ getDescriptor().getMessageType(45);
internal_static_google_spanner_executor_v1_DeleteCloudBackupAction_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_DeleteCloudBackupAction_descriptor,
@@ -1515,7 +1589,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"ProjectId", "InstanceId", "BackupId",
});
internal_static_google_spanner_executor_v1_ListCloudBackupsAction_descriptor =
- getDescriptor().getMessageType(45);
+ getDescriptor().getMessageType(46);
internal_static_google_spanner_executor_v1_ListCloudBackupsAction_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_ListCloudBackupsAction_descriptor,
@@ -1523,7 +1597,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"ProjectId", "InstanceId", "Filter", "PageSize", "PageToken",
});
internal_static_google_spanner_executor_v1_ListCloudBackupOperationsAction_descriptor =
- getDescriptor().getMessageType(46);
+ getDescriptor().getMessageType(47);
internal_static_google_spanner_executor_v1_ListCloudBackupOperationsAction_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_ListCloudBackupOperationsAction_descriptor,
@@ -1531,7 +1605,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"ProjectId", "InstanceId", "Filter", "PageSize", "PageToken",
});
internal_static_google_spanner_executor_v1_GetOperationAction_descriptor =
- getDescriptor().getMessageType(47);
+ getDescriptor().getMessageType(48);
internal_static_google_spanner_executor_v1_GetOperationAction_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_GetOperationAction_descriptor,
@@ -1539,7 +1613,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"Operation",
});
internal_static_google_spanner_executor_v1_QueryCancellationAction_descriptor =
- getDescriptor().getMessageType(48);
+ getDescriptor().getMessageType(49);
internal_static_google_spanner_executor_v1_QueryCancellationAction_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_QueryCancellationAction_descriptor,
@@ -1547,15 +1621,23 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"LongRunningSql", "CancelQuery",
});
internal_static_google_spanner_executor_v1_CancelOperationAction_descriptor =
- getDescriptor().getMessageType(49);
+ getDescriptor().getMessageType(50);
internal_static_google_spanner_executor_v1_CancelOperationAction_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_CancelOperationAction_descriptor,
new java.lang.String[] {
"Operation",
});
+ internal_static_google_spanner_executor_v1_AddSplitPointsAction_descriptor =
+ getDescriptor().getMessageType(51);
+ internal_static_google_spanner_executor_v1_AddSplitPointsAction_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_google_spanner_executor_v1_AddSplitPointsAction_descriptor,
+ new java.lang.String[] {
+ "ProjectId", "InstanceId", "DatabaseId", "SplitPoints",
+ });
internal_static_google_spanner_executor_v1_StartBatchTransactionAction_descriptor =
- getDescriptor().getMessageType(50);
+ getDescriptor().getMessageType(52);
internal_static_google_spanner_executor_v1_StartBatchTransactionAction_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_StartBatchTransactionAction_descriptor,
@@ -1563,7 +1645,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"BatchTxnTime", "Tid", "CloudDatabaseRole", "Param",
});
internal_static_google_spanner_executor_v1_CloseBatchTransactionAction_descriptor =
- getDescriptor().getMessageType(51);
+ getDescriptor().getMessageType(53);
internal_static_google_spanner_executor_v1_CloseBatchTransactionAction_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_CloseBatchTransactionAction_descriptor,
@@ -1571,7 +1653,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"Cleanup",
});
internal_static_google_spanner_executor_v1_GenerateDbPartitionsForReadAction_descriptor =
- getDescriptor().getMessageType(52);
+ getDescriptor().getMessageType(54);
internal_static_google_spanner_executor_v1_GenerateDbPartitionsForReadAction_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_GenerateDbPartitionsForReadAction_descriptor,
@@ -1579,7 +1661,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"Read", "Table", "DesiredBytesPerPartition", "MaxPartitionCount",
});
internal_static_google_spanner_executor_v1_GenerateDbPartitionsForQueryAction_descriptor =
- getDescriptor().getMessageType(53);
+ getDescriptor().getMessageType(55);
internal_static_google_spanner_executor_v1_GenerateDbPartitionsForQueryAction_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_GenerateDbPartitionsForQueryAction_descriptor,
@@ -1587,7 +1669,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"Query", "DesiredBytesPerPartition",
});
internal_static_google_spanner_executor_v1_BatchPartition_descriptor =
- getDescriptor().getMessageType(54);
+ getDescriptor().getMessageType(56);
internal_static_google_spanner_executor_v1_BatchPartition_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_BatchPartition_descriptor,
@@ -1595,7 +1677,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"Partition", "PartitionToken", "Table", "Index",
});
internal_static_google_spanner_executor_v1_ExecutePartitionAction_descriptor =
- getDescriptor().getMessageType(55);
+ getDescriptor().getMessageType(57);
internal_static_google_spanner_executor_v1_ExecutePartitionAction_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_ExecutePartitionAction_descriptor,
@@ -1603,7 +1685,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"Partition",
});
internal_static_google_spanner_executor_v1_ExecuteChangeStreamQuery_descriptor =
- getDescriptor().getMessageType(56);
+ getDescriptor().getMessageType(58);
internal_static_google_spanner_executor_v1_ExecuteChangeStreamQuery_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_ExecuteChangeStreamQuery_descriptor,
@@ -1618,7 +1700,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"CloudDatabaseRole",
});
internal_static_google_spanner_executor_v1_SpannerActionOutcome_descriptor =
- getDescriptor().getMessageType(57);
+ getDescriptor().getMessageType(59);
internal_static_google_spanner_executor_v1_SpannerActionOutcome_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_SpannerActionOutcome_descriptor,
@@ -1633,9 +1715,10 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"AdminResult",
"DmlRowsModified",
"ChangeStreamRecords",
+ "SnapshotIsolationTxnReadTimestamp",
});
internal_static_google_spanner_executor_v1_AdminResult_descriptor =
- getDescriptor().getMessageType(58);
+ getDescriptor().getMessageType(60);
internal_static_google_spanner_executor_v1_AdminResult_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_AdminResult_descriptor,
@@ -1647,7 +1730,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"InstanceConfigResponse",
});
internal_static_google_spanner_executor_v1_CloudBackupResponse_descriptor =
- getDescriptor().getMessageType(59);
+ getDescriptor().getMessageType(61);
internal_static_google_spanner_executor_v1_CloudBackupResponse_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_CloudBackupResponse_descriptor,
@@ -1655,7 +1738,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"ListedBackups", "ListedBackupOperations", "NextPageToken", "Backup",
});
internal_static_google_spanner_executor_v1_OperationResponse_descriptor =
- getDescriptor().getMessageType(60);
+ getDescriptor().getMessageType(62);
internal_static_google_spanner_executor_v1_OperationResponse_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_OperationResponse_descriptor,
@@ -1663,7 +1746,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"ListedOperations", "NextPageToken", "Operation",
});
internal_static_google_spanner_executor_v1_CloudInstanceResponse_descriptor =
- getDescriptor().getMessageType(61);
+ getDescriptor().getMessageType(63);
internal_static_google_spanner_executor_v1_CloudInstanceResponse_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_CloudInstanceResponse_descriptor,
@@ -1671,7 +1754,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"ListedInstances", "NextPageToken", "Instance",
});
internal_static_google_spanner_executor_v1_CloudInstanceConfigResponse_descriptor =
- getDescriptor().getMessageType(62);
+ getDescriptor().getMessageType(64);
internal_static_google_spanner_executor_v1_CloudInstanceConfigResponse_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_CloudInstanceConfigResponse_descriptor,
@@ -1679,7 +1762,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"ListedInstanceConfigs", "NextPageToken", "InstanceConfig",
});
internal_static_google_spanner_executor_v1_CloudDatabaseResponse_descriptor =
- getDescriptor().getMessageType(63);
+ getDescriptor().getMessageType(65);
internal_static_google_spanner_executor_v1_CloudDatabaseResponse_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_CloudDatabaseResponse_descriptor,
@@ -1687,7 +1770,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"ListedDatabases", "ListedDatabaseOperations", "NextPageToken", "Database",
});
internal_static_google_spanner_executor_v1_ReadResult_descriptor =
- getDescriptor().getMessageType(64);
+ getDescriptor().getMessageType(66);
internal_static_google_spanner_executor_v1_ReadResult_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_ReadResult_descriptor,
@@ -1695,7 +1778,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"Table", "Index", "RequestIndex", "Row", "RowType",
});
internal_static_google_spanner_executor_v1_QueryResult_descriptor =
- getDescriptor().getMessageType(65);
+ getDescriptor().getMessageType(67);
internal_static_google_spanner_executor_v1_QueryResult_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_QueryResult_descriptor,
@@ -1703,7 +1786,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"Row", "RowType",
});
internal_static_google_spanner_executor_v1_ChangeStreamRecord_descriptor =
- getDescriptor().getMessageType(66);
+ getDescriptor().getMessageType(68);
internal_static_google_spanner_executor_v1_ChangeStreamRecord_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_ChangeStreamRecord_descriptor,
@@ -1711,7 +1794,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"DataChange", "ChildPartition", "Heartbeat", "Record",
});
internal_static_google_spanner_executor_v1_DataChangeRecord_descriptor =
- getDescriptor().getMessageType(67);
+ getDescriptor().getMessageType(69);
internal_static_google_spanner_executor_v1_DataChangeRecord_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_DataChangeRecord_descriptor,
@@ -1747,7 +1830,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"Keys", "NewValues", "OldValues",
});
internal_static_google_spanner_executor_v1_ChildPartitionsRecord_descriptor =
- getDescriptor().getMessageType(68);
+ getDescriptor().getMessageType(70);
internal_static_google_spanner_executor_v1_ChildPartitionsRecord_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_ChildPartitionsRecord_descriptor,
@@ -1764,7 +1847,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"Token", "ParentPartitionTokens",
});
internal_static_google_spanner_executor_v1_HeartbeatRecord_descriptor =
- getDescriptor().getMessageType(69);
+ getDescriptor().getMessageType(71);
internal_static_google_spanner_executor_v1_HeartbeatRecord_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_HeartbeatRecord_descriptor,
@@ -1772,7 +1855,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"HeartbeatTime",
});
internal_static_google_spanner_executor_v1_SpannerOptions_descriptor =
- getDescriptor().getMessageType(70);
+ getDescriptor().getMessageType(72);
internal_static_google_spanner_executor_v1_SpannerOptions_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_SpannerOptions_descriptor,
@@ -1780,7 +1863,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"SessionPoolOptions",
});
internal_static_google_spanner_executor_v1_SessionPoolOptions_descriptor =
- getDescriptor().getMessageType(71);
+ getDescriptor().getMessageType(73);
internal_static_google_spanner_executor_v1_SessionPoolOptions_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_executor_v1_SessionPoolOptions_descriptor,
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 0802557e7e9..6f49bbbaf03 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
@@ -55,6 +55,7 @@ private CreateCloudInstanceAction() {
instanceId_ = "";
projectId_ = "";
instanceConfigId_ = "";
+ edition_ = 0;
}
public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
@@ -484,6 +485,45 @@ public java.lang.String getLabelsOrThrow(java.lang.String key) {
return map.get(key);
}
+ public static final int EDITION_FIELD_NUMBER = 8;
+ private int edition_ = 0;
+
+ /**
+ *
+ *
+ * + * The edition of the instance. + *+ * + *
.google.spanner.admin.instance.v1.Instance.Edition edition = 8;
+ *
+ * @return The enum numeric value on the wire for edition.
+ */
+ @java.lang.Override
+ public int getEditionValue() {
+ return edition_;
+ }
+
+ /**
+ *
+ *
+ * + * The edition of the instance. + *+ * + *
.google.spanner.admin.instance.v1.Instance.Edition edition = 8;
+ *
+ * @return The edition.
+ */
+ @java.lang.Override
+ public com.google.spanner.admin.instance.v1.Instance.Edition getEdition() {
+ com.google.spanner.admin.instance.v1.Instance.Edition result =
+ com.google.spanner.admin.instance.v1.Instance.Edition.forNumber(edition_);
+ return result == null
+ ? com.google.spanner.admin.instance.v1.Instance.Edition.UNRECOGNIZED
+ : result;
+ }
+
private byte memoizedIsInitialized = -1;
@java.lang.Override
@@ -518,6 +558,10 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
if (((bitField0_ & 0x00000004) != 0)) {
output.writeMessage(7, getAutoscalingConfig());
}
+ if (edition_
+ != com.google.spanner.admin.instance.v1.Instance.Edition.EDITION_UNSPECIFIED.getNumber()) {
+ output.writeEnum(8, edition_);
+ }
getUnknownFields().writeTo(output);
}
@@ -555,6 +599,10 @@ public int getSerializedSize() {
if (((bitField0_ & 0x00000004) != 0)) {
size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, getAutoscalingConfig());
}
+ if (edition_
+ != com.google.spanner.admin.instance.v1.Instance.Edition.EDITION_UNSPECIFIED.getNumber()) {
+ size += com.google.protobuf.CodedOutputStream.computeEnumSize(8, edition_);
+ }
size += getUnknownFields().getSerializedSize();
memoizedSize = size;
return size;
@@ -587,6 +635,7 @@ public boolean equals(final java.lang.Object obj) {
if (!getAutoscalingConfig().equals(other.getAutoscalingConfig())) return false;
}
if (!internalGetLabels().equals(other.internalGetLabels())) return false;
+ if (edition_ != other.edition_) return false;
if (!getUnknownFields().equals(other.getUnknownFields())) return false;
return true;
}
@@ -620,6 +669,8 @@ public int hashCode() {
hash = (37 * hash) + LABELS_FIELD_NUMBER;
hash = (53 * hash) + internalGetLabels().hashCode();
}
+ hash = (37 * hash) + EDITION_FIELD_NUMBER;
+ hash = (53 * hash) + edition_;
hash = (29 * hash) + getUnknownFields().hashCode();
memoizedHashCode = hash;
return hash;
@@ -803,6 +854,7 @@ public Builder clear() {
autoscalingConfigBuilder_ = null;
}
internalGetMutableLabels().clear();
+ edition_ = 0;
return this;
}
@@ -868,6 +920,9 @@ private void buildPartial0(com.google.spanner.executor.v1.CreateCloudInstanceAct
result.labels_ = internalGetLabels();
result.labels_.makeImmutable();
}
+ if (((from_bitField0_ & 0x00000080) != 0)) {
+ result.edition_ = edition_;
+ }
result.bitField0_ |= to_bitField0_;
}
@@ -910,6 +965,9 @@ public Builder mergeFrom(com.google.spanner.executor.v1.CreateCloudInstanceActio
}
internalGetMutableLabels().mergeFrom(other.internalGetLabels());
bitField0_ |= 0x00000040;
+ if (other.edition_ != 0) {
+ setEditionValue(other.getEditionValue());
+ }
this.mergeUnknownFields(other.getUnknownFields());
onChanged();
return this;
@@ -985,6 +1043,12 @@ public Builder mergeFrom(
bitField0_ |= 0x00000020;
break;
} // case 58
+ case 64:
+ {
+ edition_ = input.readEnum();
+ bitField0_ |= 0x00000080;
+ break;
+ } // case 64
default:
{
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
@@ -1880,6 +1944,103 @@ public Builder putAllLabels(java.util.Map+ * The edition of the instance. + *+ * + *
.google.spanner.admin.instance.v1.Instance.Edition edition = 8;
+ *
+ * @return The enum numeric value on the wire for edition.
+ */
+ @java.lang.Override
+ public int getEditionValue() {
+ return edition_;
+ }
+
+ /**
+ *
+ *
+ * + * The edition of the instance. + *+ * + *
.google.spanner.admin.instance.v1.Instance.Edition edition = 8;
+ *
+ * @param value The enum numeric value on the wire for edition to set.
+ * @return This builder for chaining.
+ */
+ public Builder setEditionValue(int value) {
+ edition_ = value;
+ bitField0_ |= 0x00000080;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The edition of the instance. + *+ * + *
.google.spanner.admin.instance.v1.Instance.Edition edition = 8;
+ *
+ * @return The edition.
+ */
+ @java.lang.Override
+ public com.google.spanner.admin.instance.v1.Instance.Edition getEdition() {
+ com.google.spanner.admin.instance.v1.Instance.Edition result =
+ com.google.spanner.admin.instance.v1.Instance.Edition.forNumber(edition_);
+ return result == null
+ ? com.google.spanner.admin.instance.v1.Instance.Edition.UNRECOGNIZED
+ : result;
+ }
+
+ /**
+ *
+ *
+ * + * The edition of the instance. + *+ * + *
.google.spanner.admin.instance.v1.Instance.Edition edition = 8;
+ *
+ * @param value The edition to set.
+ * @return This builder for chaining.
+ */
+ public Builder setEdition(com.google.spanner.admin.instance.v1.Instance.Edition value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000080;
+ edition_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * The edition of the instance. + *+ * + *
.google.spanner.admin.instance.v1.Instance.Edition edition = 8;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearEdition() {
+ bitField0_ = (bitField0_ & ~0x00000080);
+ edition_ = 0;
+ onChanged();
+ return this;
+ }
+
// @@protoc_insertion_point(builder_scope:google.spanner.executor.v1.CreateCloudInstanceAction)
}
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 b6985aa0f31..85a3715f09e 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
@@ -264,4 +264,30 @@ java.lang.String getLabelsOrDefault(
* map<string, string> labels = 5;
*/
java.lang.String getLabelsOrThrow(java.lang.String key);
+
+ /**
+ *
+ *
+ * + * The edition of the instance. + *+ * + *
.google.spanner.admin.instance.v1.Instance.Edition edition = 8;
+ *
+ * @return The enum numeric value on the wire for edition.
+ */
+ int getEditionValue();
+
+ /**
+ *
+ *
+ * + * The edition of the instance. + *+ * + *
.google.spanner.admin.instance.v1.Instance.Edition edition = 8;
+ *
+ * @return The edition.
+ */
+ com.google.spanner.admin.instance.v1.Instance.Edition getEdition();
}
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 b18ffc15212..19206b84b17 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
@@ -159,6 +159,45 @@ public boolean getAutocommitIfSupported() {
return autocommitIfSupported_;
}
+ public static final int LAST_STATEMENT_FIELD_NUMBER = 3;
+ private boolean lastStatement_ = false;
+
+ /**
+ *
+ *
+ * + * Whether to set this DML statement as the last statement in the + * transaction. The transaction should be committed after processing this DML + * statement. + *+ * + *
optional bool last_statement = 3;
+ *
+ * @return Whether the lastStatement field is set.
+ */
+ @java.lang.Override
+ public boolean hasLastStatement() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Whether to set this DML statement as the last statement in the + * transaction. The transaction should be committed after processing this DML + * statement. + *+ * + *
optional bool last_statement = 3;
+ *
+ * @return The lastStatement.
+ */
+ @java.lang.Override
+ public boolean getLastStatement() {
+ return lastStatement_;
+ }
+
private byte memoizedIsInitialized = -1;
@java.lang.Override
@@ -179,6 +218,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
if (((bitField0_ & 0x00000002) != 0)) {
output.writeBool(2, autocommitIfSupported_);
}
+ if (((bitField0_ & 0x00000004) != 0)) {
+ output.writeBool(3, lastStatement_);
+ }
getUnknownFields().writeTo(output);
}
@@ -194,6 +236,9 @@ public int getSerializedSize() {
if (((bitField0_ & 0x00000002) != 0)) {
size += com.google.protobuf.CodedOutputStream.computeBoolSize(2, autocommitIfSupported_);
}
+ if (((bitField0_ & 0x00000004) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, lastStatement_);
+ }
size += getUnknownFields().getSerializedSize();
memoizedSize = size;
return size;
@@ -217,6 +262,10 @@ public boolean equals(final java.lang.Object obj) {
if (hasAutocommitIfSupported()) {
if (getAutocommitIfSupported() != other.getAutocommitIfSupported()) return false;
}
+ if (hasLastStatement() != other.hasLastStatement()) return false;
+ if (hasLastStatement()) {
+ if (getLastStatement() != other.getLastStatement()) return false;
+ }
if (!getUnknownFields().equals(other.getUnknownFields())) return false;
return true;
}
@@ -236,6 +285,10 @@ public int hashCode() {
hash = (37 * hash) + AUTOCOMMIT_IF_SUPPORTED_FIELD_NUMBER;
hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getAutocommitIfSupported());
}
+ if (hasLastStatement()) {
+ hash = (37 * hash) + LAST_STATEMENT_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getLastStatement());
+ }
hash = (29 * hash) + getUnknownFields().hashCode();
memoizedHashCode = hash;
return hash;
@@ -391,6 +444,7 @@ public Builder clear() {
updateBuilder_ = null;
}
autocommitIfSupported_ = false;
+ lastStatement_ = false;
return this;
}
@@ -436,6 +490,10 @@ private void buildPartial0(com.google.spanner.executor.v1.DmlAction result) {
result.autocommitIfSupported_ = autocommitIfSupported_;
to_bitField0_ |= 0x00000002;
}
+ if (((from_bitField0_ & 0x00000004) != 0)) {
+ result.lastStatement_ = lastStatement_;
+ to_bitField0_ |= 0x00000004;
+ }
result.bitField0_ |= to_bitField0_;
}
@@ -457,6 +515,9 @@ public Builder mergeFrom(com.google.spanner.executor.v1.DmlAction other) {
if (other.hasAutocommitIfSupported()) {
setAutocommitIfSupported(other.getAutocommitIfSupported());
}
+ if (other.hasLastStatement()) {
+ setLastStatement(other.getLastStatement());
+ }
this.mergeUnknownFields(other.getUnknownFields());
onChanged();
return this;
@@ -495,6 +556,12 @@ public Builder mergeFrom(
bitField0_ |= 0x00000002;
break;
} // case 16
+ case 24:
+ {
+ lastStatement_ = input.readBool();
+ bitField0_ |= 0x00000004;
+ break;
+ } // case 24
default:
{
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
@@ -784,6 +851,86 @@ public Builder clearAutocommitIfSupported() {
return this;
}
+ private boolean lastStatement_;
+
+ /**
+ *
+ *
+ * + * Whether to set this DML statement as the last statement in the + * transaction. The transaction should be committed after processing this DML + * statement. + *+ * + *
optional bool last_statement = 3;
+ *
+ * @return Whether the lastStatement field is set.
+ */
+ @java.lang.Override
+ public boolean hasLastStatement() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Whether to set this DML statement as the last statement in the + * transaction. The transaction should be committed after processing this DML + * statement. + *+ * + *
optional bool last_statement = 3;
+ *
+ * @return The lastStatement.
+ */
+ @java.lang.Override
+ public boolean getLastStatement() {
+ return lastStatement_;
+ }
+
+ /**
+ *
+ *
+ * + * Whether to set this DML statement as the last statement in the + * transaction. The transaction should be committed after processing this DML + * statement. + *+ * + *
optional bool last_statement = 3;
+ *
+ * @param value The lastStatement to set.
+ * @return This builder for chaining.
+ */
+ public Builder setLastStatement(boolean value) {
+
+ lastStatement_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Whether to set this DML statement as the last statement in the + * transaction. The transaction should be committed after processing this DML + * statement. + *+ * + *
optional bool last_statement = 3;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearLastStatement() {
+ bitField0_ = (bitField0_ & ~0x00000004);
+ lastStatement_ = false;
+ onChanged();
+ return this;
+ }
+
// @@protoc_insertion_point(builder_scope:google.spanner.executor.v1.DmlAction)
}
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 0ce95392ed0..9f4ec9ebc82 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
@@ -90,4 +90,34 @@ public interface DmlActionOrBuilder
* @return The autocommitIfSupported.
*/
boolean getAutocommitIfSupported();
+
+ /**
+ *
+ *
+ * + * Whether to set this DML statement as the last statement in the + * transaction. The transaction should be committed after processing this DML + * statement. + *+ * + *
optional bool last_statement = 3;
+ *
+ * @return Whether the lastStatement field is set.
+ */
+ boolean hasLastStatement();
+
+ /**
+ *
+ *
+ * + * Whether to set this DML statement as the last statement in the + * transaction. The transaction should be committed after processing this DML + * statement. + *+ * + *
optional bool last_statement = 3;
+ *
+ * @return The lastStatement.
+ */
+ boolean getLastStatement();
}
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 d5d3eb24d4f..8c75267e142 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
@@ -24,7 +24,7 @@
*
*
* - * Action that lists Cloud Spanner databases. + * Action that lists Cloud Spanner instances. ** * Protobuf type {@code google.spanner.executor.v1.ListCloudInstancesAction} @@ -529,7 +529,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.Builder * * *
- * Action that lists Cloud Spanner databases.
+ * Action that lists Cloud Spanner instances.
*
*
* Protobuf type {@code google.spanner.executor.v1.ListCloudInstancesAction}
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 bd36ccb73e4..31f571f9569 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
@@ -99,6 +99,7 @@ public enum ActionCase
EXECUTE_PARTITION(44),
EXECUTE_CHANGE_STREAM_QUERY(50),
QUERY_CANCELLATION(51),
+ ADAPT_MESSAGE(52),
ACTION_NOT_SET(0);
private final int value;
@@ -152,6 +153,8 @@ public static ActionCase forNumber(int value) {
return EXECUTE_CHANGE_STREAM_QUERY;
case 51:
return QUERY_CANCELLATION;
+ case 52:
+ return ADAPT_MESSAGE;
case 0:
return ACTION_NOT_SET;
default:
@@ -1224,6 +1227,60 @@ public com.google.spanner.executor.v1.QueryCancellationAction getQueryCancellati
return com.google.spanner.executor.v1.QueryCancellationAction.getDefaultInstance();
}
+ public static final int ADAPT_MESSAGE_FIELD_NUMBER = 52;
+
+ /**
+ *
+ *
+ * + * Action to adapt a message. + *+ * + *
.google.spanner.executor.v1.AdaptMessageAction adapt_message = 52;
+ *
+ * @return Whether the adaptMessage field is set.
+ */
+ @java.lang.Override
+ public boolean hasAdaptMessage() {
+ return actionCase_ == 52;
+ }
+
+ /**
+ *
+ *
+ * + * Action to adapt a message. + *+ * + *
.google.spanner.executor.v1.AdaptMessageAction adapt_message = 52;
+ *
+ * @return The adaptMessage.
+ */
+ @java.lang.Override
+ public com.google.spanner.executor.v1.AdaptMessageAction getAdaptMessage() {
+ if (actionCase_ == 52) {
+ return (com.google.spanner.executor.v1.AdaptMessageAction) action_;
+ }
+ return com.google.spanner.executor.v1.AdaptMessageAction.getDefaultInstance();
+ }
+
+ /**
+ *
+ *
+ * + * Action to adapt a message. + *+ * + *
.google.spanner.executor.v1.AdaptMessageAction adapt_message = 52;
+ */
+ @java.lang.Override
+ public com.google.spanner.executor.v1.AdaptMessageActionOrBuilder getAdaptMessageOrBuilder() {
+ if (actionCase_ == 52) {
+ return (com.google.spanner.executor.v1.AdaptMessageAction) action_;
+ }
+ return com.google.spanner.executor.v1.AdaptMessageAction.getDefaultInstance();
+ }
+
private byte memoizedIsInitialized = -1;
@java.lang.Override
@@ -1297,6 +1354,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
if (actionCase_ == 51) {
output.writeMessage(51, (com.google.spanner.executor.v1.QueryCancellationAction) action_);
}
+ if (actionCase_ == 52) {
+ output.writeMessage(52, (com.google.spanner.executor.v1.AdaptMessageAction) action_);
+ }
getUnknownFields().writeTo(output);
}
@@ -1397,6 +1457,11 @@ public int getSerializedSize() {
com.google.protobuf.CodedOutputStream.computeMessageSize(
51, (com.google.spanner.executor.v1.QueryCancellationAction) action_);
}
+ if (actionCase_ == 52) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeMessageSize(
+ 52, (com.google.spanner.executor.v1.AdaptMessageAction) action_);
+ }
size += getUnknownFields().getSerializedSize();
memoizedSize = size;
return size;
@@ -1474,6 +1539,9 @@ public boolean equals(final java.lang.Object obj) {
case 51:
if (!getQueryCancellation().equals(other.getQueryCancellation())) return false;
break;
+ case 52:
+ if (!getAdaptMessage().equals(other.getAdaptMessage())) return false;
+ break;
case 0:
default:
}
@@ -1563,6 +1631,10 @@ public int hashCode() {
hash = (37 * hash) + QUERY_CANCELLATION_FIELD_NUMBER;
hash = (53 * hash) + getQueryCancellation().hashCode();
break;
+ case 52:
+ hash = (37 * hash) + ADAPT_MESSAGE_FIELD_NUMBER;
+ hash = (53 * hash) + getAdaptMessage().hashCode();
+ break;
case 0:
default:
}
@@ -1774,6 +1846,9 @@ public Builder clear() {
if (queryCancellationBuilder_ != null) {
queryCancellationBuilder_.clear();
}
+ if (adaptMessageBuilder_ != null) {
+ adaptMessageBuilder_.clear();
+ }
actionCase_ = 0;
action_ = null;
return this;
@@ -1879,6 +1954,9 @@ private void buildPartialOneofs(com.google.spanner.executor.v1.SpannerAction res
if (actionCase_ == 51 && queryCancellationBuilder_ != null) {
result.action_ = queryCancellationBuilder_.build();
}
+ if (actionCase_ == 52 && adaptMessageBuilder_ != null) {
+ result.action_ = adaptMessageBuilder_.build();
+ }
}
@java.lang.Override
@@ -1987,6 +2065,11 @@ public Builder mergeFrom(com.google.spanner.executor.v1.SpannerAction other) {
mergeQueryCancellation(other.getQueryCancellation());
break;
}
+ case ADAPT_MESSAGE:
+ {
+ mergeAdaptMessage(other.getAdaptMessage());
+ break;
+ }
case ACTION_NOT_SET:
{
break;
@@ -2146,6 +2229,13 @@ public Builder mergeFrom(
actionCase_ = 51;
break;
} // case 410
+ case 418:
+ {
+ input.readMessage(
+ internalGetAdaptMessageFieldBuilder().getBuilder(), extensionRegistry);
+ actionCase_ = 52;
+ break;
+ } // case 418
default:
{
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
@@ -6310,6 +6400,224 @@ public Builder clearQueryCancellation() {
return queryCancellationBuilder_;
}
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.spanner.executor.v1.AdaptMessageAction,
+ com.google.spanner.executor.v1.AdaptMessageAction.Builder,
+ com.google.spanner.executor.v1.AdaptMessageActionOrBuilder>
+ adaptMessageBuilder_;
+
+ /**
+ *
+ *
+ * + * Action to adapt a message. + *+ * + *
.google.spanner.executor.v1.AdaptMessageAction adapt_message = 52;
+ *
+ * @return Whether the adaptMessage field is set.
+ */
+ @java.lang.Override
+ public boolean hasAdaptMessage() {
+ return actionCase_ == 52;
+ }
+
+ /**
+ *
+ *
+ * + * Action to adapt a message. + *+ * + *
.google.spanner.executor.v1.AdaptMessageAction adapt_message = 52;
+ *
+ * @return The adaptMessage.
+ */
+ @java.lang.Override
+ public com.google.spanner.executor.v1.AdaptMessageAction getAdaptMessage() {
+ if (adaptMessageBuilder_ == null) {
+ if (actionCase_ == 52) {
+ return (com.google.spanner.executor.v1.AdaptMessageAction) action_;
+ }
+ return com.google.spanner.executor.v1.AdaptMessageAction.getDefaultInstance();
+ } else {
+ if (actionCase_ == 52) {
+ return adaptMessageBuilder_.getMessage();
+ }
+ return com.google.spanner.executor.v1.AdaptMessageAction.getDefaultInstance();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Action to adapt a message. + *+ * + *
.google.spanner.executor.v1.AdaptMessageAction adapt_message = 52;
+ */
+ public Builder setAdaptMessage(com.google.spanner.executor.v1.AdaptMessageAction value) {
+ if (adaptMessageBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ action_ = value;
+ onChanged();
+ } else {
+ adaptMessageBuilder_.setMessage(value);
+ }
+ actionCase_ = 52;
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Action to adapt a message. + *+ * + *
.google.spanner.executor.v1.AdaptMessageAction adapt_message = 52;
+ */
+ public Builder setAdaptMessage(
+ com.google.spanner.executor.v1.AdaptMessageAction.Builder builderForValue) {
+ if (adaptMessageBuilder_ == null) {
+ action_ = builderForValue.build();
+ onChanged();
+ } else {
+ adaptMessageBuilder_.setMessage(builderForValue.build());
+ }
+ actionCase_ = 52;
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Action to adapt a message. + *+ * + *
.google.spanner.executor.v1.AdaptMessageAction adapt_message = 52;
+ */
+ public Builder mergeAdaptMessage(com.google.spanner.executor.v1.AdaptMessageAction value) {
+ if (adaptMessageBuilder_ == null) {
+ if (actionCase_ == 52
+ && action_ != com.google.spanner.executor.v1.AdaptMessageAction.getDefaultInstance()) {
+ action_ =
+ com.google.spanner.executor.v1.AdaptMessageAction.newBuilder(
+ (com.google.spanner.executor.v1.AdaptMessageAction) action_)
+ .mergeFrom(value)
+ .buildPartial();
+ } else {
+ action_ = value;
+ }
+ onChanged();
+ } else {
+ if (actionCase_ == 52) {
+ adaptMessageBuilder_.mergeFrom(value);
+ } else {
+ adaptMessageBuilder_.setMessage(value);
+ }
+ }
+ actionCase_ = 52;
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Action to adapt a message. + *+ * + *
.google.spanner.executor.v1.AdaptMessageAction adapt_message = 52;
+ */
+ public Builder clearAdaptMessage() {
+ if (adaptMessageBuilder_ == null) {
+ if (actionCase_ == 52) {
+ actionCase_ = 0;
+ action_ = null;
+ onChanged();
+ }
+ } else {
+ if (actionCase_ == 52) {
+ actionCase_ = 0;
+ action_ = null;
+ }
+ adaptMessageBuilder_.clear();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Action to adapt a message. + *+ * + *
.google.spanner.executor.v1.AdaptMessageAction adapt_message = 52;
+ */
+ public com.google.spanner.executor.v1.AdaptMessageAction.Builder getAdaptMessageBuilder() {
+ return internalGetAdaptMessageFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Action to adapt a message. + *+ * + *
.google.spanner.executor.v1.AdaptMessageAction adapt_message = 52;
+ */
+ @java.lang.Override
+ public com.google.spanner.executor.v1.AdaptMessageActionOrBuilder getAdaptMessageOrBuilder() {
+ if ((actionCase_ == 52) && (adaptMessageBuilder_ != null)) {
+ return adaptMessageBuilder_.getMessageOrBuilder();
+ } else {
+ if (actionCase_ == 52) {
+ return (com.google.spanner.executor.v1.AdaptMessageAction) action_;
+ }
+ return com.google.spanner.executor.v1.AdaptMessageAction.getDefaultInstance();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Action to adapt a message. + *+ * + *
.google.spanner.executor.v1.AdaptMessageAction adapt_message = 52;
+ */
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.spanner.executor.v1.AdaptMessageAction,
+ com.google.spanner.executor.v1.AdaptMessageAction.Builder,
+ com.google.spanner.executor.v1.AdaptMessageActionOrBuilder>
+ internalGetAdaptMessageFieldBuilder() {
+ if (adaptMessageBuilder_ == null) {
+ if (!(actionCase_ == 52)) {
+ action_ = com.google.spanner.executor.v1.AdaptMessageAction.getDefaultInstance();
+ }
+ adaptMessageBuilder_ =
+ new com.google.protobuf.SingleFieldBuilder<
+ com.google.spanner.executor.v1.AdaptMessageAction,
+ com.google.spanner.executor.v1.AdaptMessageAction.Builder,
+ com.google.spanner.executor.v1.AdaptMessageActionOrBuilder>(
+ (com.google.spanner.executor.v1.AdaptMessageAction) action_,
+ getParentForChildren(),
+ isClean());
+ action_ = null;
+ }
+ actionCase_ = 52;
+ onChanged();
+ return adaptMessageBuilder_;
+ }
+
// @@protoc_insertion_point(builder_scope:google.spanner.executor.v1.SpannerAction)
}
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 740f93dcdc7..05e5744b046 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
@@ -743,5 +743,42 @@ public interface SpannerActionOrBuilder
*/
com.google.spanner.executor.v1.QueryCancellationActionOrBuilder getQueryCancellationOrBuilder();
+ /**
+ *
+ *
+ * + * Action to adapt a message. + *+ * + *
.google.spanner.executor.v1.AdaptMessageAction adapt_message = 52;
+ *
+ * @return Whether the adaptMessage field is set.
+ */
+ boolean hasAdaptMessage();
+
+ /**
+ *
+ *
+ * + * Action to adapt a message. + *+ * + *
.google.spanner.executor.v1.AdaptMessageAction adapt_message = 52;
+ *
+ * @return The adaptMessage.
+ */
+ com.google.spanner.executor.v1.AdaptMessageAction getAdaptMessage();
+
+ /**
+ *
+ *
+ * + * Action to adapt a message. + *+ * + *
.google.spanner.executor.v1.AdaptMessageAction adapt_message = 52;
+ */
+ com.google.spanner.executor.v1.AdaptMessageActionOrBuilder getAdaptMessageOrBuilder();
+
com.google.spanner.executor.v1.SpannerAction.ActionCase getActionCase();
}
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 79baac1d4d8..ff10ce58be7 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
@@ -639,6 +639,43 @@ public com.google.spanner.executor.v1.ChangeStreamRecordOrBuilder getChangeStrea
return changeStreamRecords_.get(index);
}
+ public static final int SNAPSHOT_ISOLATION_TXN_READ_TIMESTAMP_FIELD_NUMBER = 11;
+ private long snapshotIsolationTxnReadTimestamp_ = 0L;
+
+ /**
+ *
+ *
+ * + * If not zero, it indicates the read timestamp to use for validating + * the SnapshotIsolation transaction. + *+ * + *
optional int64 snapshot_isolation_txn_read_timestamp = 11;
+ *
+ * @return Whether the snapshotIsolationTxnReadTimestamp field is set.
+ */
+ @java.lang.Override
+ public boolean hasSnapshotIsolationTxnReadTimestamp() {
+ return ((bitField0_ & 0x00000080) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * If not zero, it indicates the read timestamp to use for validating + * the SnapshotIsolation transaction. + *+ * + *
optional int64 snapshot_isolation_txn_read_timestamp = 11;
+ *
+ * @return The snapshotIsolationTxnReadTimestamp.
+ */
+ @java.lang.Override
+ public long getSnapshotIsolationTxnReadTimestamp() {
+ return snapshotIsolationTxnReadTimestamp_;
+ }
+
private byte memoizedIsInitialized = -1;
@java.lang.Override
@@ -688,6 +725,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
for (int i = 0; i < changeStreamRecords_.size(); i++) {
output.writeMessage(10, changeStreamRecords_.get(i));
}
+ if (((bitField0_ & 0x00000080) != 0)) {
+ output.writeInt64(11, snapshotIsolationTxnReadTimestamp_);
+ }
getUnknownFields().writeTo(output);
}
@@ -739,6 +779,11 @@ public int getSerializedSize() {
size +=
com.google.protobuf.CodedOutputStream.computeMessageSize(10, changeStreamRecords_.get(i));
}
+ if (((bitField0_ & 0x00000080) != 0)) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeInt64Size(
+ 11, snapshotIsolationTxnReadTimestamp_);
+ }
size += getUnknownFields().getSerializedSize();
memoizedSize = size;
return size;
@@ -786,6 +831,12 @@ public boolean equals(final java.lang.Object obj) {
}
if (!getDmlRowsModifiedList().equals(other.getDmlRowsModifiedList())) return false;
if (!getChangeStreamRecordsList().equals(other.getChangeStreamRecordsList())) return false;
+ if (hasSnapshotIsolationTxnReadTimestamp() != other.hasSnapshotIsolationTxnReadTimestamp())
+ return false;
+ if (hasSnapshotIsolationTxnReadTimestamp()) {
+ if (getSnapshotIsolationTxnReadTimestamp() != other.getSnapshotIsolationTxnReadTimestamp())
+ return false;
+ }
if (!getUnknownFields().equals(other.getUnknownFields())) return false;
return true;
}
@@ -837,6 +888,12 @@ public int hashCode() {
hash = (37 * hash) + CHANGE_STREAM_RECORDS_FIELD_NUMBER;
hash = (53 * hash) + getChangeStreamRecordsList().hashCode();
}
+ if (hasSnapshotIsolationTxnReadTimestamp()) {
+ hash = (37 * hash) + SNAPSHOT_ISOLATION_TXN_READ_TIMESTAMP_FIELD_NUMBER;
+ hash =
+ (53 * hash)
+ + com.google.protobuf.Internal.hashLong(getSnapshotIsolationTxnReadTimestamp());
+ }
hash = (29 * hash) + getUnknownFields().hashCode();
memoizedHashCode = hash;
return hash;
@@ -1034,6 +1091,7 @@ public Builder clear() {
changeStreamRecordsBuilder_.clear();
}
bitField0_ = (bitField0_ & ~0x00000200);
+ snapshotIsolationTxnReadTimestamp_ = 0L;
return this;
}
@@ -1128,6 +1186,10 @@ private void buildPartial0(com.google.spanner.executor.v1.SpannerActionOutcome r
dmlRowsModified_.makeImmutable();
result.dmlRowsModified_ = dmlRowsModified_;
}
+ if (((from_bitField0_ & 0x00000400) != 0)) {
+ result.snapshotIsolationTxnReadTimestamp_ = snapshotIsolationTxnReadTimestamp_;
+ to_bitField0_ |= 0x00000080;
+ }
result.bitField0_ |= to_bitField0_;
}
@@ -1230,6 +1292,9 @@ public Builder mergeFrom(com.google.spanner.executor.v1.SpannerActionOutcome oth
}
}
}
+ if (other.hasSnapshotIsolationTxnReadTimestamp()) {
+ setSnapshotIsolationTxnReadTimestamp(other.getSnapshotIsolationTxnReadTimestamp());
+ }
this.mergeUnknownFields(other.getUnknownFields());
onChanged();
return this;
@@ -1347,6 +1412,12 @@ public Builder mergeFrom(
}
break;
} // case 82
+ case 88:
+ {
+ snapshotIsolationTxnReadTimestamp_ = input.readInt64();
+ bitField0_ |= 0x00000400;
+ break;
+ } // case 88
default:
{
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
@@ -3448,6 +3519,82 @@ public com.google.spanner.executor.v1.ChangeStreamRecord.Builder addChangeStream
return changeStreamRecordsBuilder_;
}
+ private long snapshotIsolationTxnReadTimestamp_;
+
+ /**
+ *
+ *
+ * + * If not zero, it indicates the read timestamp to use for validating + * the SnapshotIsolation transaction. + *+ * + *
optional int64 snapshot_isolation_txn_read_timestamp = 11;
+ *
+ * @return Whether the snapshotIsolationTxnReadTimestamp field is set.
+ */
+ @java.lang.Override
+ public boolean hasSnapshotIsolationTxnReadTimestamp() {
+ return ((bitField0_ & 0x00000400) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * If not zero, it indicates the read timestamp to use for validating + * the SnapshotIsolation transaction. + *+ * + *
optional int64 snapshot_isolation_txn_read_timestamp = 11;
+ *
+ * @return The snapshotIsolationTxnReadTimestamp.
+ */
+ @java.lang.Override
+ public long getSnapshotIsolationTxnReadTimestamp() {
+ return snapshotIsolationTxnReadTimestamp_;
+ }
+
+ /**
+ *
+ *
+ * + * If not zero, it indicates the read timestamp to use for validating + * the SnapshotIsolation transaction. + *+ * + *
optional int64 snapshot_isolation_txn_read_timestamp = 11;
+ *
+ * @param value The snapshotIsolationTxnReadTimestamp to set.
+ * @return This builder for chaining.
+ */
+ public Builder setSnapshotIsolationTxnReadTimestamp(long value) {
+
+ snapshotIsolationTxnReadTimestamp_ = value;
+ bitField0_ |= 0x00000400;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * If not zero, it indicates the read timestamp to use for validating + * the SnapshotIsolation transaction. + *+ * + *
optional int64 snapshot_isolation_txn_read_timestamp = 11;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearSnapshotIsolationTxnReadTimestamp() {
+ bitField0_ = (bitField0_ & ~0x00000400);
+ snapshotIsolationTxnReadTimestamp_ = 0L;
+ onChanged();
+ return this;
+ }
+
// @@protoc_insertion_point(builder_scope:google.spanner.executor.v1.SpannerActionOutcome)
}
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 d2e80b07a5e..f4670e974cc 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
@@ -445,4 +445,32 @@ public interface SpannerActionOutcomeOrBuilder
*/
com.google.spanner.executor.v1.ChangeStreamRecordOrBuilder getChangeStreamRecordsOrBuilder(
int index);
+
+ /**
+ *
+ *
+ * + * If not zero, it indicates the read timestamp to use for validating + * the SnapshotIsolation transaction. + *+ * + *
optional int64 snapshot_isolation_txn_read_timestamp = 11;
+ *
+ * @return Whether the snapshotIsolationTxnReadTimestamp field is set.
+ */
+ boolean hasSnapshotIsolationTxnReadTimestamp();
+
+ /**
+ *
+ *
+ * + * If not zero, it indicates the read timestamp to use for validating + * the SnapshotIsolation transaction. + *+ * + *
optional int64 snapshot_isolation_txn_read_timestamp = 11;
+ *
+ * @return The snapshotIsolationTxnReadTimestamp.
+ */
+ long getSnapshotIsolationTxnReadTimestamp();
}
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 011ed1cc4d4..3cce17f84b5 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
@@ -271,7 +271,8 @@ public com.google.protobuf.ByteString getTransactionSeedBytes() {
*
*
*
- * Execution options (e.g., whether transaction is opaque, optimistic).
+ * Execution options (e.g., whether transaction is opaque, optimistic,
+ * excluded from change streams).
*
*
* optional .google.spanner.executor.v1.TransactionExecutionOptions execution_options = 4;
@@ -288,7 +289,8 @@ public boolean hasExecutionOptions() {
*
*
*
- * Execution options (e.g., whether transaction is opaque, optimistic).
+ * Execution options (e.g., whether transaction is opaque, optimistic,
+ * excluded from change streams).
*
*
* optional .google.spanner.executor.v1.TransactionExecutionOptions execution_options = 4;
@@ -307,7 +309,8 @@ public com.google.spanner.executor.v1.TransactionExecutionOptions getExecutionOp
*
*
*
- * Execution options (e.g., whether transaction is opaque, optimistic).
+ * Execution options (e.g., whether transaction is opaque, optimistic,
+ * excluded from change streams).
*
*
* optional .google.spanner.executor.v1.TransactionExecutionOptions execution_options = 4;
@@ -1500,7 +1503,8 @@ public Builder setTransactionSeedBytes(com.google.protobuf.ByteString value) {
*
*
*
- * Execution options (e.g., whether transaction is opaque, optimistic).
+ * Execution options (e.g., whether transaction is opaque, optimistic,
+ * excluded from change streams).
*
*
* optional .google.spanner.executor.v1.TransactionExecutionOptions execution_options = 4;
@@ -1516,7 +1520,8 @@ public boolean hasExecutionOptions() {
*
*
*
- * Execution options (e.g., whether transaction is opaque, optimistic).
+ * Execution options (e.g., whether transaction is opaque, optimistic,
+ * excluded from change streams).
*
*
* optional .google.spanner.executor.v1.TransactionExecutionOptions execution_options = 4;
@@ -1538,7 +1543,8 @@ public com.google.spanner.executor.v1.TransactionExecutionOptions getExecutionOp
*
*
*
- * Execution options (e.g., whether transaction is opaque, optimistic).
+ * Execution options (e.g., whether transaction is opaque, optimistic,
+ * excluded from change streams).
*
*
* optional .google.spanner.executor.v1.TransactionExecutionOptions execution_options = 4;
@@ -1563,7 +1569,8 @@ public Builder setExecutionOptions(
*
*
*
- * Execution options (e.g., whether transaction is opaque, optimistic).
+ * Execution options (e.g., whether transaction is opaque, optimistic,
+ * excluded from change streams).
*
*
* optional .google.spanner.executor.v1.TransactionExecutionOptions execution_options = 4;
@@ -1585,7 +1592,8 @@ public Builder setExecutionOptions(
*
*
*
- * Execution options (e.g., whether transaction is opaque, optimistic).
+ * Execution options (e.g., whether transaction is opaque, optimistic,
+ * excluded from change streams).
*
*
* optional .google.spanner.executor.v1.TransactionExecutionOptions execution_options = 4;
@@ -1617,7 +1625,8 @@ public Builder mergeExecutionOptions(
*
*
*
- * Execution options (e.g., whether transaction is opaque, optimistic).
+ * Execution options (e.g., whether transaction is opaque, optimistic,
+ * excluded from change streams).
*
*
* optional .google.spanner.executor.v1.TransactionExecutionOptions execution_options = 4;
@@ -1638,7 +1647,8 @@ public Builder clearExecutionOptions() {
*
*
*
- * Execution options (e.g., whether transaction is opaque, optimistic).
+ * Execution options (e.g., whether transaction is opaque, optimistic,
+ * excluded from change streams).
*
*
* optional .google.spanner.executor.v1.TransactionExecutionOptions execution_options = 4;
@@ -1655,7 +1665,8 @@ public Builder clearExecutionOptions() {
*
*
*
- * Execution options (e.g., whether transaction is opaque, optimistic).
+ * Execution options (e.g., whether transaction is opaque, optimistic,
+ * excluded from change streams).
*
*
* optional .google.spanner.executor.v1.TransactionExecutionOptions execution_options = 4;
@@ -1676,7 +1687,8 @@ public Builder clearExecutionOptions() {
*
*
*
- * Execution options (e.g., whether transaction is opaque, optimistic).
+ * Execution options (e.g., whether transaction is opaque, optimistic,
+ * excluded from change streams).
*
*
* optional .google.spanner.executor.v1.TransactionExecutionOptions execution_options = 4;
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 810cc98eb73..e82420ed5a9 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
@@ -159,7 +159,8 @@ public interface StartTransactionActionOrBuilder
*
*
*
- * Execution options (e.g., whether transaction is opaque, optimistic).
+ * Execution options (e.g., whether transaction is opaque, optimistic,
+ * excluded from change streams).
*
*
* optional .google.spanner.executor.v1.TransactionExecutionOptions execution_options = 4;
@@ -173,7 +174,8 @@ public interface StartTransactionActionOrBuilder
*
*
*
- * Execution options (e.g., whether transaction is opaque, optimistic).
+ * Execution options (e.g., whether transaction is opaque, optimistic,
+ * excluded from change streams).
*
*
* optional .google.spanner.executor.v1.TransactionExecutionOptions execution_options = 4;
@@ -187,7 +189,8 @@ public interface StartTransactionActionOrBuilder
*
*
*
- * Execution options (e.g., whether transaction is opaque, optimistic).
+ * Execution options (e.g., whether transaction is opaque, optimistic,
+ * excluded from change streams).
*
*
* optional .google.spanner.executor.v1.TransactionExecutionOptions execution_options = 4;
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 e9d10b43716..73155bb9dae 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
@@ -20,15 +20,7 @@
package com.google.spanner.executor.v1;
-/**
- *
- *
- *
- * Options for executing the transaction.
- *
- *
- * Protobuf type {@code google.spanner.executor.v1.TransactionExecutionOptions}
- */
+/** Protobuf type {@code google.spanner.executor.v1.TransactionExecutionOptions} */
@com.google.protobuf.Generated
public final class TransactionExecutionOptions extends com.google.protobuf.GeneratedMessage
implements
@@ -87,6 +79,106 @@ public boolean getOptimistic() {
return optimistic_;
}
+ public static final int EXCLUDE_FROM_CHANGE_STREAMS_FIELD_NUMBER = 2;
+ private boolean excludeFromChangeStreams_ = false;
+
+ /**
+ *
+ *
+ *
+ * Whether traffic from this transaction will be excluded from tracking change
+ * streams with allow_txn_exclusion=true.
+ *
+ *
+ * bool exclude_from_change_streams = 2;
+ *
+ * @return The excludeFromChangeStreams.
+ */
+ @java.lang.Override
+ public boolean getExcludeFromChangeStreams() {
+ return excludeFromChangeStreams_;
+ }
+
+ public static final int SERIALIZABLE_OPTIMISTIC_FIELD_NUMBER = 3;
+ private boolean serializableOptimistic_ = false;
+
+ /**
+ *
+ *
+ *
+ * Whether serializable isolation with optimistic mode concurrency should be
+ * used to execute this transaction.
+ *
+ *
+ * bool serializable_optimistic = 3;
+ *
+ * @return The serializableOptimistic.
+ */
+ @java.lang.Override
+ public boolean getSerializableOptimistic() {
+ return serializableOptimistic_;
+ }
+
+ public static final int SNAPSHOT_ISOLATION_OPTIMISTIC_FIELD_NUMBER = 4;
+ private boolean snapshotIsolationOptimistic_ = false;
+
+ /**
+ *
+ *
+ *
+ * Whether snapshot isolation with optimistic mode concurrency should be used
+ * to execute this transaction.
+ *
+ *
+ * bool snapshot_isolation_optimistic = 4;
+ *
+ * @return The snapshotIsolationOptimistic.
+ */
+ @java.lang.Override
+ public boolean getSnapshotIsolationOptimistic() {
+ return snapshotIsolationOptimistic_;
+ }
+
+ public static final int SNAPSHOT_ISOLATION_PESSIMISTIC_FIELD_NUMBER = 5;
+ private boolean snapshotIsolationPessimistic_ = false;
+
+ /**
+ *
+ *
+ *
+ * Whether snapshot isolation with pessimistic mode concurrency should be used
+ * to execute this transaction.
+ *
+ *
+ * bool snapshot_isolation_pessimistic = 5;
+ *
+ * @return The snapshotIsolationPessimistic.
+ */
+ @java.lang.Override
+ public boolean getSnapshotIsolationPessimistic() {
+ return snapshotIsolationPessimistic_;
+ }
+
+ public static final int EXCLUDE_TXN_FROM_CHANGE_STREAMS_FIELD_NUMBER = 6;
+ private boolean excludeTxnFromChangeStreams_ = false;
+
+ /**
+ *
+ *
+ *
+ * Whether to exclude mutations of this transaction from the allowed tracking
+ * change streams.
+ *
+ *
+ * bool exclude_txn_from_change_streams = 6;
+ *
+ * @return The excludeTxnFromChangeStreams.
+ */
+ @java.lang.Override
+ public boolean getExcludeTxnFromChangeStreams() {
+ return excludeTxnFromChangeStreams_;
+ }
+
private byte memoizedIsInitialized = -1;
@java.lang.Override
@@ -104,6 +196,21 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
if (optimistic_ != false) {
output.writeBool(1, optimistic_);
}
+ if (excludeFromChangeStreams_ != false) {
+ output.writeBool(2, excludeFromChangeStreams_);
+ }
+ if (serializableOptimistic_ != false) {
+ output.writeBool(3, serializableOptimistic_);
+ }
+ if (snapshotIsolationOptimistic_ != false) {
+ output.writeBool(4, snapshotIsolationOptimistic_);
+ }
+ if (snapshotIsolationPessimistic_ != false) {
+ output.writeBool(5, snapshotIsolationPessimistic_);
+ }
+ if (excludeTxnFromChangeStreams_ != false) {
+ output.writeBool(6, excludeTxnFromChangeStreams_);
+ }
getUnknownFields().writeTo(output);
}
@@ -116,6 +223,24 @@ public int getSerializedSize() {
if (optimistic_ != false) {
size += com.google.protobuf.CodedOutputStream.computeBoolSize(1, optimistic_);
}
+ if (excludeFromChangeStreams_ != false) {
+ size += com.google.protobuf.CodedOutputStream.computeBoolSize(2, excludeFromChangeStreams_);
+ }
+ if (serializableOptimistic_ != false) {
+ size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, serializableOptimistic_);
+ }
+ if (snapshotIsolationOptimistic_ != false) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeBoolSize(4, snapshotIsolationOptimistic_);
+ }
+ if (snapshotIsolationPessimistic_ != false) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeBoolSize(5, snapshotIsolationPessimistic_);
+ }
+ if (excludeTxnFromChangeStreams_ != false) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeBoolSize(6, excludeTxnFromChangeStreams_);
+ }
size += getUnknownFields().getSerializedSize();
memoizedSize = size;
return size;
@@ -133,6 +258,11 @@ public boolean equals(final java.lang.Object obj) {
(com.google.spanner.executor.v1.TransactionExecutionOptions) obj;
if (getOptimistic() != other.getOptimistic()) return false;
+ if (getExcludeFromChangeStreams() != other.getExcludeFromChangeStreams()) return false;
+ if (getSerializableOptimistic() != other.getSerializableOptimistic()) return false;
+ if (getSnapshotIsolationOptimistic() != other.getSnapshotIsolationOptimistic()) return false;
+ if (getSnapshotIsolationPessimistic() != other.getSnapshotIsolationPessimistic()) return false;
+ if (getExcludeTxnFromChangeStreams() != other.getExcludeTxnFromChangeStreams()) return false;
if (!getUnknownFields().equals(other.getUnknownFields())) return false;
return true;
}
@@ -146,6 +276,17 @@ public int hashCode() {
hash = (19 * hash) + getDescriptor().hashCode();
hash = (37 * hash) + OPTIMISTIC_FIELD_NUMBER;
hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getOptimistic());
+ hash = (37 * hash) + EXCLUDE_FROM_CHANGE_STREAMS_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getExcludeFromChangeStreams());
+ hash = (37 * hash) + SERIALIZABLE_OPTIMISTIC_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getSerializableOptimistic());
+ hash = (37 * hash) + SNAPSHOT_ISOLATION_OPTIMISTIC_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getSnapshotIsolationOptimistic());
+ hash = (37 * hash) + SNAPSHOT_ISOLATION_PESSIMISTIC_FIELD_NUMBER;
+ hash =
+ (53 * hash) + com.google.protobuf.Internal.hashBoolean(getSnapshotIsolationPessimistic());
+ hash = (37 * hash) + EXCLUDE_TXN_FROM_CHANGE_STREAMS_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getExcludeTxnFromChangeStreams());
hash = (29 * hash) + getUnknownFields().hashCode();
memoizedHashCode = hash;
return hash;
@@ -248,15 +389,7 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.Builder
return builder;
}
- /**
- *
- *
- *
- * Options for executing the transaction.
- *
- *
- * Protobuf type {@code google.spanner.executor.v1.TransactionExecutionOptions}
- */
+ /** Protobuf type {@code google.spanner.executor.v1.TransactionExecutionOptions} */
public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder
implements
// @@protoc_insertion_point(builder_implements:google.spanner.executor.v1.TransactionExecutionOptions)
@@ -288,6 +421,11 @@ public Builder clear() {
super.clear();
bitField0_ = 0;
optimistic_ = false;
+ excludeFromChangeStreams_ = false;
+ serializableOptimistic_ = false;
+ snapshotIsolationOptimistic_ = false;
+ snapshotIsolationPessimistic_ = false;
+ excludeTxnFromChangeStreams_ = false;
return this;
}
@@ -327,6 +465,21 @@ private void buildPartial0(com.google.spanner.executor.v1.TransactionExecutionOp
if (((from_bitField0_ & 0x00000001) != 0)) {
result.optimistic_ = optimistic_;
}
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.excludeFromChangeStreams_ = excludeFromChangeStreams_;
+ }
+ if (((from_bitField0_ & 0x00000004) != 0)) {
+ result.serializableOptimistic_ = serializableOptimistic_;
+ }
+ if (((from_bitField0_ & 0x00000008) != 0)) {
+ result.snapshotIsolationOptimistic_ = snapshotIsolationOptimistic_;
+ }
+ if (((from_bitField0_ & 0x00000010) != 0)) {
+ result.snapshotIsolationPessimistic_ = snapshotIsolationPessimistic_;
+ }
+ if (((from_bitField0_ & 0x00000020) != 0)) {
+ result.excludeTxnFromChangeStreams_ = excludeTxnFromChangeStreams_;
+ }
}
@java.lang.Override
@@ -345,6 +498,21 @@ public Builder mergeFrom(com.google.spanner.executor.v1.TransactionExecutionOpti
if (other.getOptimistic() != false) {
setOptimistic(other.getOptimistic());
}
+ if (other.getExcludeFromChangeStreams() != false) {
+ setExcludeFromChangeStreams(other.getExcludeFromChangeStreams());
+ }
+ if (other.getSerializableOptimistic() != false) {
+ setSerializableOptimistic(other.getSerializableOptimistic());
+ }
+ if (other.getSnapshotIsolationOptimistic() != false) {
+ setSnapshotIsolationOptimistic(other.getSnapshotIsolationOptimistic());
+ }
+ if (other.getSnapshotIsolationPessimistic() != false) {
+ setSnapshotIsolationPessimistic(other.getSnapshotIsolationPessimistic());
+ }
+ if (other.getExcludeTxnFromChangeStreams() != false) {
+ setExcludeTxnFromChangeStreams(other.getExcludeTxnFromChangeStreams());
+ }
this.mergeUnknownFields(other.getUnknownFields());
onChanged();
return this;
@@ -377,6 +545,36 @@ public Builder mergeFrom(
bitField0_ |= 0x00000001;
break;
} // case 8
+ case 16:
+ {
+ excludeFromChangeStreams_ = input.readBool();
+ bitField0_ |= 0x00000002;
+ break;
+ } // case 16
+ case 24:
+ {
+ serializableOptimistic_ = input.readBool();
+ bitField0_ |= 0x00000004;
+ break;
+ } // case 24
+ case 32:
+ {
+ snapshotIsolationOptimistic_ = input.readBool();
+ bitField0_ |= 0x00000008;
+ break;
+ } // case 32
+ case 40:
+ {
+ snapshotIsolationPessimistic_ = input.readBool();
+ bitField0_ |= 0x00000010;
+ break;
+ } // case 40
+ case 48:
+ {
+ excludeTxnFromChangeStreams_ = input.readBool();
+ bitField0_ |= 0x00000020;
+ break;
+ } // case 48
default:
{
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
@@ -452,6 +650,301 @@ public Builder clearOptimistic() {
return this;
}
+ private boolean excludeFromChangeStreams_;
+
+ /**
+ *
+ *
+ *
+ * Whether traffic from this transaction will be excluded from tracking change
+ * streams with allow_txn_exclusion=true.
+ *
+ *
+ * bool exclude_from_change_streams = 2;
+ *
+ * @return The excludeFromChangeStreams.
+ */
+ @java.lang.Override
+ public boolean getExcludeFromChangeStreams() {
+ return excludeFromChangeStreams_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Whether traffic from this transaction will be excluded from tracking change
+ * streams with allow_txn_exclusion=true.
+ *
+ *
+ * bool exclude_from_change_streams = 2;
+ *
+ * @param value The excludeFromChangeStreams to set.
+ * @return This builder for chaining.
+ */
+ public Builder setExcludeFromChangeStreams(boolean value) {
+
+ excludeFromChangeStreams_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Whether traffic from this transaction will be excluded from tracking change
+ * streams with allow_txn_exclusion=true.
+ *
+ *
+ * bool exclude_from_change_streams = 2;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearExcludeFromChangeStreams() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ excludeFromChangeStreams_ = false;
+ onChanged();
+ return this;
+ }
+
+ private boolean serializableOptimistic_;
+
+ /**
+ *
+ *
+ *
+ * Whether serializable isolation with optimistic mode concurrency should be
+ * used to execute this transaction.
+ *
+ *
+ * bool serializable_optimistic = 3;
+ *
+ * @return The serializableOptimistic.
+ */
+ @java.lang.Override
+ public boolean getSerializableOptimistic() {
+ return serializableOptimistic_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Whether serializable isolation with optimistic mode concurrency should be
+ * used to execute this transaction.
+ *
+ *
+ * bool serializable_optimistic = 3;
+ *
+ * @param value The serializableOptimistic to set.
+ * @return This builder for chaining.
+ */
+ public Builder setSerializableOptimistic(boolean value) {
+
+ serializableOptimistic_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Whether serializable isolation with optimistic mode concurrency should be
+ * used to execute this transaction.
+ *
+ *
+ * bool serializable_optimistic = 3;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearSerializableOptimistic() {
+ bitField0_ = (bitField0_ & ~0x00000004);
+ serializableOptimistic_ = false;
+ onChanged();
+ return this;
+ }
+
+ private boolean snapshotIsolationOptimistic_;
+
+ /**
+ *
+ *
+ *
+ * Whether snapshot isolation with optimistic mode concurrency should be used
+ * to execute this transaction.
+ *
+ *
+ * bool snapshot_isolation_optimistic = 4;
+ *
+ * @return The snapshotIsolationOptimistic.
+ */
+ @java.lang.Override
+ public boolean getSnapshotIsolationOptimistic() {
+ return snapshotIsolationOptimistic_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Whether snapshot isolation with optimistic mode concurrency should be used
+ * to execute this transaction.
+ *
+ *
+ * bool snapshot_isolation_optimistic = 4;
+ *
+ * @param value The snapshotIsolationOptimistic to set.
+ * @return This builder for chaining.
+ */
+ public Builder setSnapshotIsolationOptimistic(boolean value) {
+
+ snapshotIsolationOptimistic_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Whether snapshot isolation with optimistic mode concurrency should be used
+ * to execute this transaction.
+ *
+ *
+ * bool snapshot_isolation_optimistic = 4;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearSnapshotIsolationOptimistic() {
+ bitField0_ = (bitField0_ & ~0x00000008);
+ snapshotIsolationOptimistic_ = false;
+ onChanged();
+ return this;
+ }
+
+ private boolean snapshotIsolationPessimistic_;
+
+ /**
+ *
+ *
+ *
+ * Whether snapshot isolation with pessimistic mode concurrency should be used
+ * to execute this transaction.
+ *
+ *
+ * bool snapshot_isolation_pessimistic = 5;
+ *
+ * @return The snapshotIsolationPessimistic.
+ */
+ @java.lang.Override
+ public boolean getSnapshotIsolationPessimistic() {
+ return snapshotIsolationPessimistic_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Whether snapshot isolation with pessimistic mode concurrency should be used
+ * to execute this transaction.
+ *
+ *
+ * bool snapshot_isolation_pessimistic = 5;
+ *
+ * @param value The snapshotIsolationPessimistic to set.
+ * @return This builder for chaining.
+ */
+ public Builder setSnapshotIsolationPessimistic(boolean value) {
+
+ snapshotIsolationPessimistic_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Whether snapshot isolation with pessimistic mode concurrency should be used
+ * to execute this transaction.
+ *
+ *
+ * bool snapshot_isolation_pessimistic = 5;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearSnapshotIsolationPessimistic() {
+ bitField0_ = (bitField0_ & ~0x00000010);
+ snapshotIsolationPessimistic_ = false;
+ onChanged();
+ return this;
+ }
+
+ private boolean excludeTxnFromChangeStreams_;
+
+ /**
+ *
+ *
+ *
+ * Whether to exclude mutations of this transaction from the allowed tracking
+ * change streams.
+ *
+ *
+ * bool exclude_txn_from_change_streams = 6;
+ *
+ * @return The excludeTxnFromChangeStreams.
+ */
+ @java.lang.Override
+ public boolean getExcludeTxnFromChangeStreams() {
+ return excludeTxnFromChangeStreams_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Whether to exclude mutations of this transaction from the allowed tracking
+ * change streams.
+ *
+ *
+ * bool exclude_txn_from_change_streams = 6;
+ *
+ * @param value The excludeTxnFromChangeStreams to set.
+ * @return This builder for chaining.
+ */
+ public Builder setExcludeTxnFromChangeStreams(boolean value) {
+
+ excludeTxnFromChangeStreams_ = value;
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Whether to exclude mutations of this transaction from the allowed tracking
+ * change streams.
+ *
+ *
+ * bool exclude_txn_from_change_streams = 6;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearExcludeTxnFromChangeStreams() {
+ bitField0_ = (bitField0_ & ~0x00000020);
+ excludeTxnFromChangeStreams_ = false;
+ onChanged();
+ return this;
+ }
+
// @@protoc_insertion_point(builder_scope:google.spanner.executor.v1.TransactionExecutionOptions)
}
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 64c5491a7ce..d8a2ec73d1e 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
@@ -38,4 +38,74 @@ public interface TransactionExecutionOptionsOrBuilder
* @return The optimistic.
*/
boolean getOptimistic();
+
+ /**
+ *
+ *
+ *
+ * Whether traffic from this transaction will be excluded from tracking change
+ * streams with allow_txn_exclusion=true.
+ *
+ *
+ * bool exclude_from_change_streams = 2;
+ *
+ * @return The excludeFromChangeStreams.
+ */
+ boolean getExcludeFromChangeStreams();
+
+ /**
+ *
+ *
+ *
+ * Whether serializable isolation with optimistic mode concurrency should be
+ * used to execute this transaction.
+ *
+ *
+ * bool serializable_optimistic = 3;
+ *
+ * @return The serializableOptimistic.
+ */
+ boolean getSerializableOptimistic();
+
+ /**
+ *
+ *
+ *
+ * Whether snapshot isolation with optimistic mode concurrency should be used
+ * to execute this transaction.
+ *
+ *
+ * bool snapshot_isolation_optimistic = 4;
+ *
+ * @return The snapshotIsolationOptimistic.
+ */
+ boolean getSnapshotIsolationOptimistic();
+
+ /**
+ *
+ *
+ *
+ * Whether snapshot isolation with pessimistic mode concurrency should be used
+ * to execute this transaction.
+ *
+ *
+ * bool snapshot_isolation_pessimistic = 5;
+ *
+ * @return The snapshotIsolationPessimistic.
+ */
+ boolean getSnapshotIsolationPessimistic();
+
+ /**
+ *
+ *
+ *
+ * Whether to exclude mutations of this transaction from the allowed tracking
+ * change streams.
+ *
+ *
+ * bool exclude_txn_from_change_streams = 6;
+ *
+ * @return The excludeTxnFromChangeStreams.
+ */
+ boolean getExcludeTxnFromChangeStreams();
}
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 bcbe8130d28..ec50faabe6a 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
@@ -55,6 +55,7 @@ private UpdateCloudInstanceAction() {
instanceId_ = "";
projectId_ = "";
displayName_ = "";
+ edition_ = 0;
}
public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
@@ -507,6 +508,45 @@ public java.lang.String getLabelsOrThrow(java.lang.String key) {
return map.get(key);
}
+ public static final int EDITION_FIELD_NUMBER = 8;
+ private int edition_ = 0;
+
+ /**
+ *
+ *
+ *
+ * The edition of the instance.
+ *
+ *
+ * .google.spanner.admin.instance.v1.Instance.Edition edition = 8;
+ *
+ * @return The enum numeric value on the wire for edition.
+ */
+ @java.lang.Override
+ public int getEditionValue() {
+ return edition_;
+ }
+
+ /**
+ *
+ *
+ *
+ * The edition of the instance.
+ *
+ *
+ * .google.spanner.admin.instance.v1.Instance.Edition edition = 8;
+ *
+ * @return The edition.
+ */
+ @java.lang.Override
+ public com.google.spanner.admin.instance.v1.Instance.Edition getEdition() {
+ com.google.spanner.admin.instance.v1.Instance.Edition result =
+ com.google.spanner.admin.instance.v1.Instance.Edition.forNumber(edition_);
+ return result == null
+ ? com.google.spanner.admin.instance.v1.Instance.Edition.UNRECOGNIZED
+ : result;
+ }
+
private byte memoizedIsInitialized = -1;
@java.lang.Override
@@ -541,6 +581,10 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
if (((bitField0_ & 0x00000008) != 0)) {
output.writeMessage(7, getAutoscalingConfig());
}
+ if (edition_
+ != com.google.spanner.admin.instance.v1.Instance.Edition.EDITION_UNSPECIFIED.getNumber()) {
+ output.writeEnum(8, edition_);
+ }
getUnknownFields().writeTo(output);
}
@@ -578,6 +622,10 @@ public int getSerializedSize() {
if (((bitField0_ & 0x00000008) != 0)) {
size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, getAutoscalingConfig());
}
+ if (edition_
+ != com.google.spanner.admin.instance.v1.Instance.Edition.EDITION_UNSPECIFIED.getNumber()) {
+ size += com.google.protobuf.CodedOutputStream.computeEnumSize(8, edition_);
+ }
size += getUnknownFields().getSerializedSize();
memoizedSize = size;
return size;
@@ -613,6 +661,7 @@ public boolean equals(final java.lang.Object obj) {
if (!getAutoscalingConfig().equals(other.getAutoscalingConfig())) return false;
}
if (!internalGetLabels().equals(other.internalGetLabels())) return false;
+ if (edition_ != other.edition_) return false;
if (!getUnknownFields().equals(other.getUnknownFields())) return false;
return true;
}
@@ -648,6 +697,8 @@ public int hashCode() {
hash = (37 * hash) + LABELS_FIELD_NUMBER;
hash = (53 * hash) + internalGetLabels().hashCode();
}
+ hash = (37 * hash) + EDITION_FIELD_NUMBER;
+ hash = (53 * hash) + edition_;
hash = (29 * hash) + getUnknownFields().hashCode();
memoizedHashCode = hash;
return hash;
@@ -831,6 +882,7 @@ public Builder clear() {
autoscalingConfigBuilder_ = null;
}
internalGetMutableLabels().clear();
+ edition_ = 0;
return this;
}
@@ -897,6 +949,9 @@ private void buildPartial0(com.google.spanner.executor.v1.UpdateCloudInstanceAct
result.labels_ = internalGetLabels();
result.labels_.makeImmutable();
}
+ if (((from_bitField0_ & 0x00000080) != 0)) {
+ result.edition_ = edition_;
+ }
result.bitField0_ |= to_bitField0_;
}
@@ -939,6 +994,9 @@ public Builder mergeFrom(com.google.spanner.executor.v1.UpdateCloudInstanceActio
}
internalGetMutableLabels().mergeFrom(other.internalGetLabels());
bitField0_ |= 0x00000040;
+ if (other.edition_ != 0) {
+ setEditionValue(other.getEditionValue());
+ }
this.mergeUnknownFields(other.getUnknownFields());
onChanged();
return this;
@@ -1014,6 +1072,12 @@ public Builder mergeFrom(
bitField0_ |= 0x00000020;
break;
} // case 58
+ case 64:
+ {
+ edition_ = input.readEnum();
+ bitField0_ |= 0x00000080;
+ break;
+ } // case 64
default:
{
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
@@ -1938,6 +2002,103 @@ public Builder putAllLabels(java.util.Map va
return this;
}
+ private int edition_ = 0;
+
+ /**
+ *
+ *
+ *
+ * The edition of the instance.
+ *
+ *
+ * .google.spanner.admin.instance.v1.Instance.Edition edition = 8;
+ *
+ * @return The enum numeric value on the wire for edition.
+ */
+ @java.lang.Override
+ public int getEditionValue() {
+ return edition_;
+ }
+
+ /**
+ *
+ *
+ *
+ * The edition of the instance.
+ *
+ *
+ * .google.spanner.admin.instance.v1.Instance.Edition edition = 8;
+ *
+ * @param value The enum numeric value on the wire for edition to set.
+ * @return This builder for chaining.
+ */
+ public Builder setEditionValue(int value) {
+ edition_ = value;
+ bitField0_ |= 0x00000080;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * The edition of the instance.
+ *
+ *
+ * .google.spanner.admin.instance.v1.Instance.Edition edition = 8;
+ *
+ * @return The edition.
+ */
+ @java.lang.Override
+ public com.google.spanner.admin.instance.v1.Instance.Edition getEdition() {
+ com.google.spanner.admin.instance.v1.Instance.Edition result =
+ com.google.spanner.admin.instance.v1.Instance.Edition.forNumber(edition_);
+ return result == null
+ ? com.google.spanner.admin.instance.v1.Instance.Edition.UNRECOGNIZED
+ : result;
+ }
+
+ /**
+ *
+ *
+ *
+ * The edition of the instance.
+ *
+ *
+ * .google.spanner.admin.instance.v1.Instance.Edition edition = 8;
+ *
+ * @param value The edition to set.
+ * @return This builder for chaining.
+ */
+ public Builder setEdition(com.google.spanner.admin.instance.v1.Instance.Edition value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000080;
+ edition_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * The edition of the instance.
+ *
+ *
+ * .google.spanner.admin.instance.v1.Instance.Edition edition = 8;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearEdition() {
+ bitField0_ = (bitField0_ & ~0x00000080);
+ edition_ = 0;
+ onChanged();
+ return this;
+ }
+
// @@protoc_insertion_point(builder_scope:google.spanner.executor.v1.UpdateCloudInstanceAction)
}
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 958b4a25fb2..157043851e2 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
@@ -284,4 +284,30 @@ java.lang.String getLabelsOrDefault(
* map<string, string> labels = 6;
*/
java.lang.String getLabelsOrThrow(java.lang.String key);
+
+ /**
+ *
+ *
+ *
+ * The edition of the instance.
+ *
+ *
+ * .google.spanner.admin.instance.v1.Instance.Edition edition = 8;
+ *
+ * @return The enum numeric value on the wire for edition.
+ */
+ int getEditionValue();
+
+ /**
+ *
+ *
+ *
+ * The edition of the instance.
+ *
+ *
+ * .google.spanner.admin.instance.v1.Instance.Edition edition = 8;
+ *
+ * @return The edition.
+ */
+ com.google.spanner.admin.instance.v1.Instance.Edition getEdition();
}
diff --git a/proto-google-cloud-spanner-executor-v1/src/main/proto/google/spanner/executor/v1/cloud_executor.proto b/proto-google-cloud-spanner-executor-v1/src/main/proto/google/spanner/executor/v1/cloud_executor.proto
index cf68519ef3a..5ca3b25ac2a 100644
--- a/proto-google-cloud-spanner-executor-v1/src/main/proto/google/spanner/executor/v1/cloud_executor.proto
+++ b/proto-google-cloud-spanner-executor-v1/src/main/proto/google/spanner/executor/v1/cloud_executor.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -135,6 +135,9 @@ message SpannerAction {
// Query cancellation action for testing the cancellation of a query.
QueryCancellationAction query_cancellation = 51;
+
+ // Action to adapt a message.
+ AdaptMessageAction adapt_message = 52;
}
}
@@ -185,12 +188,22 @@ message DmlAction {
// Whether to autocommit the transaction after executing the DML statement,
// if the Executor supports autocommit.
optional bool autocommit_if_supported = 2;
+
+ // Whether to set this DML statement as the last statement in the
+ // transaction. The transaction should be committed after processing this DML
+ // statement.
+ optional bool last_statement = 3;
}
// Batch of DML statements invoked using batched execution.
message BatchDmlAction {
// DML statements.
repeated QueryAction updates = 1;
+
+ // Whether to set this request with the last statement option in the
+ // transaction. The transaction should be committed after processing this
+ // request.
+ optional bool last_statements = 2;
}
// Value represents a single value that can be read or written to/from
@@ -396,7 +409,8 @@ message StartTransactionAction {
// testing.
string transaction_seed = 3;
- // Execution options (e.g., whether transaction is opaque, optimistic).
+ // Execution options (e.g., whether transaction is opaque, optimistic,
+ // excluded from change streams).
optional TransactionExecutionOptions execution_options = 4;
}
@@ -460,10 +474,29 @@ message ColumnMetadata {
google.spanner.v1.Type type = 2;
}
-// Options for executing the transaction.
message TransactionExecutionOptions {
// Whether optimistic concurrency should be used to execute this transaction.
bool optimistic = 1;
+
+ // Whether traffic from this transaction will be excluded from tracking change
+ // streams with allow_txn_exclusion=true.
+ bool exclude_from_change_streams = 2;
+
+ // Whether serializable isolation with optimistic mode concurrency should be
+ // used to execute this transaction.
+ bool serializable_optimistic = 3;
+
+ // Whether snapshot isolation with optimistic mode concurrency should be used
+ // to execute this transaction.
+ bool snapshot_isolation_optimistic = 4;
+
+ // Whether snapshot isolation with pessimistic mode concurrency should be used
+ // to execute this transaction.
+ bool snapshot_isolation_pessimistic = 5;
+
+ // Whether to exclude mutations of this transaction from the allowed tracking
+ // change streams.
+ bool exclude_txn_from_change_streams = 6;
}
// FinishTransactionAction defines an action of finishing a transaction.
@@ -573,6 +606,9 @@ message AdminAction {
// Action that changes quorum of a Cloud Spanner database.
ChangeQuorumCloudDatabaseAction change_quorum_cloud_database = 28;
+
+ // Action that adds splits to a Cloud Spanner database.
+ AddSplitPointsAction add_split_points = 29;
}
}
@@ -663,6 +699,9 @@ message CreateCloudInstanceAction {
// labels.
map labels = 5;
+
+ // The edition of the instance.
+ google.spanner.admin.instance.v1.Instance.Edition edition = 8;
}
// Action that updates a Cloud Spanner instance.
@@ -693,6 +732,9 @@ message UpdateCloudInstanceAction {
// labels.
map labels = 6;
+
+ // The edition of the instance.
+ google.spanner.admin.instance.v1.Instance.Edition edition = 8;
}
// Action that deletes a Cloud Spanner instance.
@@ -787,6 +829,29 @@ message ChangeQuorumCloudDatabaseAction {
repeated string serving_locations = 2;
}
+// A single Adapt message request.
+message AdaptMessageAction {
+ // The fully qualified uri of the database to send AdaptMessage to.
+ string database_uri = 1;
+
+ // The protocol to use for the request.
+ string protocol = 2;
+
+ // The payload of the request.
+ bytes payload = 3;
+
+ // Attachments to be sent with the request.
+ map attachments = 4;
+
+ // The query to be sent with the request.
+ string query = 5;
+
+ // If true, the action will send a Prepare request first and then an
+ // Execute request right after to execute the query. This is only supported
+ // for Cloud Client path.
+ bool prepare_then_execute = 6;
+}
+
// Action that lists Cloud Spanner databases.
message ListCloudDatabasesAction {
// Cloud project ID, e.g. "spanner-cloud-systest".
@@ -805,7 +870,7 @@ message ListCloudDatabasesAction {
string page_token = 4;
}
-// Action that lists Cloud Spanner databases.
+// Action that lists Cloud Spanner instances.
message ListCloudInstancesAction {
// Cloud project ID, e.g. "spanner-cloud-systest".
string project_id = 1;
@@ -1067,6 +1132,21 @@ message CancelOperationAction {
string operation = 1;
}
+// Action that adds a split point to a Cloud Spanner database.
+message AddSplitPointsAction {
+ // Cloud project ID, e.g. "spanner-cloud-systest".
+ string project_id = 1;
+
+ // Cloud instance ID (not path), e.g. "test-instance".
+ string instance_id = 2;
+
+ // Cloud database ID (not full path), e.g. "db0".
+ string database_id = 3;
+
+ // The split points to add.
+ repeated google.spanner.admin.database.v1.SplitPoints split_points = 4;
+}
+
// Starts a batch read-only transaction in executor. Successful outcomes of this
// action will contain batch_txn_id--the identificator that can be used to start
// the same transaction in other Executors to parallelize partition processing.
@@ -1260,6 +1340,10 @@ message SpannerActionOutcome {
// Change stream records returned by a change stream query.
repeated ChangeStreamRecord change_stream_records = 10;
+
+ // If not zero, it indicates the read timestamp to use for validating
+ // the SnapshotIsolation transaction.
+ optional int64 snapshot_isolation_txn_read_timestamp = 11;
}
// AdminResult contains admin action results, for database/backup/operation.
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 9ad24d944be..aa66a1eebb5 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
@@ -318,6 +318,80 @@ public com.google.spanner.v1.MutationOrBuilder getMutationKeyOrBuilder() {
: mutationKey_;
}
+ public static final int ROUTING_HINT_FIELD_NUMBER = 5;
+ private com.google.spanner.v1.RoutingHint routingHint_;
+
+ /**
+ *
+ *
+ *
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ *
+ *
+ *
+ * .google.spanner.v1.RoutingHint routing_hint = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return Whether the routingHint field is set.
+ */
+ @java.lang.Override
+ public boolean hasRoutingHint() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ *
+ *
+ *
+ * .google.spanner.v1.RoutingHint routing_hint = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The routingHint.
+ */
+ @java.lang.Override
+ public com.google.spanner.v1.RoutingHint getRoutingHint() {
+ return routingHint_ == null
+ ? com.google.spanner.v1.RoutingHint.getDefaultInstance()
+ : routingHint_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ *
+ *
+ *
+ * .google.spanner.v1.RoutingHint routing_hint = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ @java.lang.Override
+ public com.google.spanner.v1.RoutingHintOrBuilder getRoutingHintOrBuilder() {
+ return routingHint_ == null
+ ? com.google.spanner.v1.RoutingHint.getDefaultInstance()
+ : routingHint_;
+ }
+
private byte memoizedIsInitialized = -1;
@java.lang.Override
@@ -344,6 +418,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
if (((bitField0_ & 0x00000004) != 0)) {
output.writeMessage(4, getMutationKey());
}
+ if (((bitField0_ & 0x00000008) != 0)) {
+ output.writeMessage(5, getRoutingHint());
+ }
getUnknownFields().writeTo(output);
}
@@ -365,6 +442,9 @@ public int getSerializedSize() {
if (((bitField0_ & 0x00000004) != 0)) {
size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getMutationKey());
}
+ if (((bitField0_ & 0x00000008) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getRoutingHint());
+ }
size += getUnknownFields().getSerializedSize();
memoizedSize = size;
return size;
@@ -394,6 +474,10 @@ public boolean equals(final java.lang.Object obj) {
if (hasMutationKey()) {
if (!getMutationKey().equals(other.getMutationKey())) return false;
}
+ if (hasRoutingHint() != other.hasRoutingHint()) return false;
+ if (hasRoutingHint()) {
+ if (!getRoutingHint().equals(other.getRoutingHint())) return false;
+ }
if (!getUnknownFields().equals(other.getUnknownFields())) return false;
return true;
}
@@ -419,6 +503,10 @@ public int hashCode() {
hash = (37 * hash) + MUTATION_KEY_FIELD_NUMBER;
hash = (53 * hash) + getMutationKey().hashCode();
}
+ if (hasRoutingHint()) {
+ hash = (37 * hash) + ROUTING_HINT_FIELD_NUMBER;
+ hash = (53 * hash) + getRoutingHint().hashCode();
+ }
hash = (29 * hash) + getUnknownFields().hashCode();
memoizedHashCode = hash;
return hash;
@@ -564,6 +652,7 @@ private void maybeForceBuilderInitialization() {
internalGetOptionsFieldBuilder();
internalGetRequestOptionsFieldBuilder();
internalGetMutationKeyFieldBuilder();
+ internalGetRoutingHintFieldBuilder();
}
}
@@ -587,6 +676,11 @@ public Builder clear() {
mutationKeyBuilder_.dispose();
mutationKeyBuilder_ = null;
}
+ routingHint_ = null;
+ if (routingHintBuilder_ != null) {
+ routingHintBuilder_.dispose();
+ routingHintBuilder_ = null;
+ }
return this;
}
@@ -641,6 +735,11 @@ private void buildPartial0(com.google.spanner.v1.BeginTransactionRequest result)
mutationKeyBuilder_ == null ? mutationKey_ : mutationKeyBuilder_.build();
to_bitField0_ |= 0x00000004;
}
+ if (((from_bitField0_ & 0x00000010) != 0)) {
+ result.routingHint_ =
+ routingHintBuilder_ == null ? routingHint_ : routingHintBuilder_.build();
+ to_bitField0_ |= 0x00000008;
+ }
result.bitField0_ |= to_bitField0_;
}
@@ -670,6 +769,9 @@ public Builder mergeFrom(com.google.spanner.v1.BeginTransactionRequest other) {
if (other.hasMutationKey()) {
mergeMutationKey(other.getMutationKey());
}
+ if (other.hasRoutingHint()) {
+ mergeRoutingHint(other.getRoutingHint());
+ }
this.mergeUnknownFields(other.getUnknownFields());
onChanged();
return this;
@@ -722,6 +824,13 @@ public Builder mergeFrom(
bitField0_ |= 0x00000008;
break;
} // case 34
+ case 42:
+ {
+ input.readMessage(
+ internalGetRoutingHintFieldBuilder().getBuilder(), extensionRegistry);
+ bitField0_ |= 0x00000010;
+ break;
+ } // case 42
default:
{
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
@@ -1534,6 +1643,263 @@ public com.google.spanner.v1.MutationOrBuilder getMutationKeyOrBuilder() {
return mutationKeyBuilder_;
}
+ private com.google.spanner.v1.RoutingHint routingHint_;
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.spanner.v1.RoutingHint,
+ com.google.spanner.v1.RoutingHint.Builder,
+ com.google.spanner.v1.RoutingHintOrBuilder>
+ routingHintBuilder_;
+
+ /**
+ *
+ *
+ *
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ *
+ *
+ *
+ * .google.spanner.v1.RoutingHint routing_hint = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return Whether the routingHint field is set.
+ */
+ public boolean hasRoutingHint() {
+ return ((bitField0_ & 0x00000010) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ *
+ *
+ *
+ * .google.spanner.v1.RoutingHint routing_hint = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The routingHint.
+ */
+ public com.google.spanner.v1.RoutingHint getRoutingHint() {
+ if (routingHintBuilder_ == null) {
+ return routingHint_ == null
+ ? com.google.spanner.v1.RoutingHint.getDefaultInstance()
+ : routingHint_;
+ } else {
+ return routingHintBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ *
+ *
+ *
+ * .google.spanner.v1.RoutingHint routing_hint = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder setRoutingHint(com.google.spanner.v1.RoutingHint value) {
+ if (routingHintBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ routingHint_ = value;
+ } else {
+ routingHintBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ *
+ *
+ *
+ * .google.spanner.v1.RoutingHint routing_hint = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder setRoutingHint(com.google.spanner.v1.RoutingHint.Builder builderForValue) {
+ if (routingHintBuilder_ == null) {
+ routingHint_ = builderForValue.build();
+ } else {
+ routingHintBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ *
+ *
+ *
+ * .google.spanner.v1.RoutingHint routing_hint = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder mergeRoutingHint(com.google.spanner.v1.RoutingHint value) {
+ if (routingHintBuilder_ == null) {
+ if (((bitField0_ & 0x00000010) != 0)
+ && routingHint_ != null
+ && routingHint_ != com.google.spanner.v1.RoutingHint.getDefaultInstance()) {
+ getRoutingHintBuilder().mergeFrom(value);
+ } else {
+ routingHint_ = value;
+ }
+ } else {
+ routingHintBuilder_.mergeFrom(value);
+ }
+ if (routingHint_ != null) {
+ bitField0_ |= 0x00000010;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ *
+ *
+ *
+ * .google.spanner.v1.RoutingHint routing_hint = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder clearRoutingHint() {
+ bitField0_ = (bitField0_ & ~0x00000010);
+ routingHint_ = null;
+ if (routingHintBuilder_ != null) {
+ routingHintBuilder_.dispose();
+ routingHintBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ *
+ *
+ *
+ * .google.spanner.v1.RoutingHint routing_hint = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public com.google.spanner.v1.RoutingHint.Builder getRoutingHintBuilder() {
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return internalGetRoutingHintFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ *
+ *
+ *
+ * .google.spanner.v1.RoutingHint routing_hint = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public com.google.spanner.v1.RoutingHintOrBuilder getRoutingHintOrBuilder() {
+ if (routingHintBuilder_ != null) {
+ return routingHintBuilder_.getMessageOrBuilder();
+ } else {
+ return routingHint_ == null
+ ? com.google.spanner.v1.RoutingHint.getDefaultInstance()
+ : routingHint_;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ *
+ *
+ *
+ * .google.spanner.v1.RoutingHint routing_hint = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.spanner.v1.RoutingHint,
+ com.google.spanner.v1.RoutingHint.Builder,
+ com.google.spanner.v1.RoutingHintOrBuilder>
+ internalGetRoutingHintFieldBuilder() {
+ if (routingHintBuilder_ == null) {
+ routingHintBuilder_ =
+ new com.google.protobuf.SingleFieldBuilder<
+ com.google.spanner.v1.RoutingHint,
+ com.google.spanner.v1.RoutingHint.Builder,
+ com.google.spanner.v1.RoutingHintOrBuilder>(
+ getRoutingHint(), getParentForChildren(), isClean());
+ routingHint_ = null;
+ }
+ return routingHintBuilder_;
+ }
+
// @@protoc_insertion_point(builder_scope:google.spanner.v1.BeginTransactionRequest)
}
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 0c3b884c8a4..30c8901404e 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
@@ -196,4 +196,62 @@ public interface BeginTransactionRequestOrBuilder
*
*/
com.google.spanner.v1.MutationOrBuilder getMutationKeyOrBuilder();
+
+ /**
+ *
+ *
+ *
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ *
+ *
+ *
+ * .google.spanner.v1.RoutingHint routing_hint = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return Whether the routingHint field is set.
+ */
+ boolean hasRoutingHint();
+
+ /**
+ *
+ *
+ *
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ *
+ *
+ *
+ * .google.spanner.v1.RoutingHint routing_hint = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The routingHint.
+ */
+ com.google.spanner.v1.RoutingHint getRoutingHint();
+
+ /**
+ *
+ *
+ *
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ *
+ *
+ *
+ * .google.spanner.v1.RoutingHint routing_hint = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ com.google.spanner.v1.RoutingHintOrBuilder getRoutingHintOrBuilder();
}
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CommitRequest.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CommitRequest.java
index 7a8e48e19aa..5fc62e537c6 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CommitRequest.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CommitRequest.java
@@ -591,6 +591,80 @@ public com.google.spanner.v1.MultiplexedSessionPrecommitToken getPrecommitToken(
: precommitToken_;
}
+ public static final int ROUTING_HINT_FIELD_NUMBER = 10;
+ private com.google.spanner.v1.RoutingHint routingHint_;
+
+ /**
+ *
+ *
+ *
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ *
+ *
+ *
+ * .google.spanner.v1.RoutingHint routing_hint = 10 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return Whether the routingHint field is set.
+ */
+ @java.lang.Override
+ public boolean hasRoutingHint() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ *
+ *
+ *
+ * .google.spanner.v1.RoutingHint routing_hint = 10 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The routingHint.
+ */
+ @java.lang.Override
+ public com.google.spanner.v1.RoutingHint getRoutingHint() {
+ return routingHint_ == null
+ ? com.google.spanner.v1.RoutingHint.getDefaultInstance()
+ : routingHint_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ *
+ *
+ *
+ * .google.spanner.v1.RoutingHint routing_hint = 10 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ @java.lang.Override
+ public com.google.spanner.v1.RoutingHintOrBuilder getRoutingHintOrBuilder() {
+ return routingHint_ == null
+ ? com.google.spanner.v1.RoutingHint.getDefaultInstance()
+ : routingHint_;
+ }
+
private byte memoizedIsInitialized = -1;
@java.lang.Override
@@ -629,6 +703,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
if (((bitField0_ & 0x00000004) != 0)) {
output.writeMessage(9, getPrecommitToken());
}
+ if (((bitField0_ & 0x00000008) != 0)) {
+ output.writeMessage(10, getRoutingHint());
+ }
getUnknownFields().writeTo(output);
}
@@ -666,6 +743,9 @@ public int getSerializedSize() {
if (((bitField0_ & 0x00000004) != 0)) {
size += com.google.protobuf.CodedOutputStream.computeMessageSize(9, getPrecommitToken());
}
+ if (((bitField0_ & 0x00000008) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(10, getRoutingHint());
+ }
size += getUnknownFields().getSerializedSize();
memoizedSize = size;
return size;
@@ -696,6 +776,10 @@ public boolean equals(final java.lang.Object obj) {
if (hasPrecommitToken()) {
if (!getPrecommitToken().equals(other.getPrecommitToken())) return false;
}
+ if (hasRoutingHint() != other.hasRoutingHint()) return false;
+ if (hasRoutingHint()) {
+ if (!getRoutingHint().equals(other.getRoutingHint())) return false;
+ }
if (!getTransactionCase().equals(other.getTransactionCase())) return false;
switch (transactionCase_) {
case 2:
@@ -738,6 +822,10 @@ public int hashCode() {
hash = (37 * hash) + PRECOMMIT_TOKEN_FIELD_NUMBER;
hash = (53 * hash) + getPrecommitToken().hashCode();
}
+ if (hasRoutingHint()) {
+ hash = (37 * hash) + ROUTING_HINT_FIELD_NUMBER;
+ hash = (53 * hash) + getRoutingHint().hashCode();
+ }
switch (transactionCase_) {
case 2:
hash = (37 * hash) + TRANSACTION_ID_FIELD_NUMBER;
@@ -894,6 +982,7 @@ private void maybeForceBuilderInitialization() {
internalGetMaxCommitDelayFieldBuilder();
internalGetRequestOptionsFieldBuilder();
internalGetPrecommitTokenFieldBuilder();
+ internalGetRoutingHintFieldBuilder();
}
}
@@ -928,6 +1017,11 @@ public Builder clear() {
precommitTokenBuilder_.dispose();
precommitTokenBuilder_ = null;
}
+ routingHint_ = null;
+ if (routingHintBuilder_ != null) {
+ routingHintBuilder_.dispose();
+ routingHintBuilder_ = null;
+ }
transactionCase_ = 0;
transaction_ = null;
return this;
@@ -1001,6 +1095,11 @@ private void buildPartial0(com.google.spanner.v1.CommitRequest result) {
precommitTokenBuilder_ == null ? precommitToken_ : precommitTokenBuilder_.build();
to_bitField0_ |= 0x00000004;
}
+ if (((from_bitField0_ & 0x00000100) != 0)) {
+ result.routingHint_ =
+ routingHintBuilder_ == null ? routingHint_ : routingHintBuilder_.build();
+ to_bitField0_ |= 0x00000008;
+ }
result.bitField0_ |= to_bitField0_;
}
@@ -1068,6 +1167,9 @@ public Builder mergeFrom(com.google.spanner.v1.CommitRequest other) {
if (other.hasPrecommitToken()) {
mergePrecommitToken(other.getPrecommitToken());
}
+ if (other.hasRoutingHint()) {
+ mergeRoutingHint(other.getRoutingHint());
+ }
switch (other.getTransactionCase()) {
case TRANSACTION_ID:
{
@@ -1168,6 +1270,13 @@ public Builder mergeFrom(
bitField0_ |= 0x00000080;
break;
} // case 74
+ case 82:
+ {
+ input.readMessage(
+ internalGetRoutingHintFieldBuilder().getBuilder(), extensionRegistry);
+ bitField0_ |= 0x00000100;
+ break;
+ } // case 82
default:
{
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
@@ -2834,6 +2943,263 @@ public Builder clearPrecommitToken() {
return precommitTokenBuilder_;
}
+ private com.google.spanner.v1.RoutingHint routingHint_;
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.spanner.v1.RoutingHint,
+ com.google.spanner.v1.RoutingHint.Builder,
+ com.google.spanner.v1.RoutingHintOrBuilder>
+ routingHintBuilder_;
+
+ /**
+ *
+ *
+ *
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ *
+ *
+ *
+ * .google.spanner.v1.RoutingHint routing_hint = 10 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return Whether the routingHint field is set.
+ */
+ public boolean hasRoutingHint() {
+ return ((bitField0_ & 0x00000100) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ *
+ *
+ *
+ * .google.spanner.v1.RoutingHint routing_hint = 10 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The routingHint.
+ */
+ public com.google.spanner.v1.RoutingHint getRoutingHint() {
+ if (routingHintBuilder_ == null) {
+ return routingHint_ == null
+ ? com.google.spanner.v1.RoutingHint.getDefaultInstance()
+ : routingHint_;
+ } else {
+ return routingHintBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ *
+ *
+ *
+ * .google.spanner.v1.RoutingHint routing_hint = 10 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder setRoutingHint(com.google.spanner.v1.RoutingHint value) {
+ if (routingHintBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ routingHint_ = value;
+ } else {
+ routingHintBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000100;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ *
+ *
+ *
+ * .google.spanner.v1.RoutingHint routing_hint = 10 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder setRoutingHint(com.google.spanner.v1.RoutingHint.Builder builderForValue) {
+ if (routingHintBuilder_ == null) {
+ routingHint_ = builderForValue.build();
+ } else {
+ routingHintBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000100;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ *
+ *
+ *
+ * .google.spanner.v1.RoutingHint routing_hint = 10 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder mergeRoutingHint(com.google.spanner.v1.RoutingHint value) {
+ if (routingHintBuilder_ == null) {
+ if (((bitField0_ & 0x00000100) != 0)
+ && routingHint_ != null
+ && routingHint_ != com.google.spanner.v1.RoutingHint.getDefaultInstance()) {
+ getRoutingHintBuilder().mergeFrom(value);
+ } else {
+ routingHint_ = value;
+ }
+ } else {
+ routingHintBuilder_.mergeFrom(value);
+ }
+ if (routingHint_ != null) {
+ bitField0_ |= 0x00000100;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ *
+ *
+ *
+ * .google.spanner.v1.RoutingHint routing_hint = 10 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder clearRoutingHint() {
+ bitField0_ = (bitField0_ & ~0x00000100);
+ routingHint_ = null;
+ if (routingHintBuilder_ != null) {
+ routingHintBuilder_.dispose();
+ routingHintBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ *
+ *
+ *
+ * .google.spanner.v1.RoutingHint routing_hint = 10 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public com.google.spanner.v1.RoutingHint.Builder getRoutingHintBuilder() {
+ bitField0_ |= 0x00000100;
+ onChanged();
+ return internalGetRoutingHintFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ *
+ *
+ *
+ * .google.spanner.v1.RoutingHint routing_hint = 10 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public com.google.spanner.v1.RoutingHintOrBuilder getRoutingHintOrBuilder() {
+ if (routingHintBuilder_ != null) {
+ return routingHintBuilder_.getMessageOrBuilder();
+ } else {
+ return routingHint_ == null
+ ? com.google.spanner.v1.RoutingHint.getDefaultInstance()
+ : routingHint_;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ *
+ *
+ *
+ * .google.spanner.v1.RoutingHint routing_hint = 10 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.spanner.v1.RoutingHint,
+ com.google.spanner.v1.RoutingHint.Builder,
+ com.google.spanner.v1.RoutingHintOrBuilder>
+ internalGetRoutingHintFieldBuilder() {
+ if (routingHintBuilder_ == null) {
+ routingHintBuilder_ =
+ new com.google.protobuf.SingleFieldBuilder<
+ com.google.spanner.v1.RoutingHint,
+ com.google.spanner.v1.RoutingHint.Builder,
+ com.google.spanner.v1.RoutingHintOrBuilder>(
+ getRoutingHint(), getParentForChildren(), isClean());
+ routingHint_ = null;
+ }
+ return routingHintBuilder_;
+ }
+
// @@protoc_insertion_point(builder_scope:google.spanner.v1.CommitRequest)
}
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CommitRequestOrBuilder.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CommitRequestOrBuilder.java
index 3ebd2e23ca3..e38948d301f 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CommitRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CommitRequestOrBuilder.java
@@ -364,5 +364,63 @@ public interface CommitRequestOrBuilder
*/
com.google.spanner.v1.MultiplexedSessionPrecommitTokenOrBuilder getPrecommitTokenOrBuilder();
+ /**
+ *
+ *
+ *
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ *
+ *
+ *
+ * .google.spanner.v1.RoutingHint routing_hint = 10 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return Whether the routingHint field is set.
+ */
+ boolean hasRoutingHint();
+
+ /**
+ *
+ *
+ *
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ *
+ *
+ *
+ * .google.spanner.v1.RoutingHint routing_hint = 10 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The routingHint.
+ */
+ com.google.spanner.v1.RoutingHint getRoutingHint();
+
+ /**
+ *
+ *
+ *
+ * Optional. Makes the Spanner requests location-aware if present.
+ *
+ * It gives the server hints that can be used to route the request
+ * to an appropriate server, potentially significantly decreasing latency and
+ * improving throughput. To achieve improved performance, most fields must be
+ * filled in with accurate values.
+ *
+ *
+ *
+ * .google.spanner.v1.RoutingHint routing_hint = 10 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ com.google.spanner.v1.RoutingHintOrBuilder getRoutingHintOrBuilder();
+
com.google.spanner.v1.CommitRequest.TransactionCase getTransactionCase();
}
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CommitResponse.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CommitResponse.java
index acf0f9fa516..6819b485f96 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CommitResponse.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CommitResponse.java
@@ -879,6 +879,80 @@ public com.google.protobuf.TimestampOrBuilder getSnapshotTimestampOrBuilder() {
: snapshotTimestamp_;
}
+ public static final int CACHE_UPDATE_FIELD_NUMBER = 6;
+ private com.google.spanner.v1.CacheUpdate cacheUpdate_;
+
+ /**
+ *
+ *
+ *
+ * Optional. A cache update expresses a set of changes the client should
+ * incorporate into its location cache. The client should discard the changes
+ * if they are older than the data it already has. This data can be obtained
+ * in response to requests that included a `RoutingHint` field, but may also
+ * be obtained by explicit location-fetching RPCs which may be added in the
+ * future.
+ *
+ *
+ *
+ * .google.spanner.v1.CacheUpdate cache_update = 6 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return Whether the cacheUpdate field is set.
+ */
+ @java.lang.Override
+ public boolean hasCacheUpdate() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A cache update expresses a set of changes the client should
+ * incorporate into its location cache. The client should discard the changes
+ * if they are older than the data it already has. This data can be obtained
+ * in response to requests that included a `RoutingHint` field, but may also
+ * be obtained by explicit location-fetching RPCs which may be added in the
+ * future.
+ *
+ *
+ *
+ * .google.spanner.v1.CacheUpdate cache_update = 6 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The cacheUpdate.
+ */
+ @java.lang.Override
+ public com.google.spanner.v1.CacheUpdate getCacheUpdate() {
+ return cacheUpdate_ == null
+ ? com.google.spanner.v1.CacheUpdate.getDefaultInstance()
+ : cacheUpdate_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A cache update expresses a set of changes the client should
+ * incorporate into its location cache. The client should discard the changes
+ * if they are older than the data it already has. This data can be obtained
+ * in response to requests that included a `RoutingHint` field, but may also
+ * be obtained by explicit location-fetching RPCs which may be added in the
+ * future.
+ *
+ *
+ *
+ * .google.spanner.v1.CacheUpdate cache_update = 6 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ @java.lang.Override
+ public com.google.spanner.v1.CacheUpdateOrBuilder getCacheUpdateOrBuilder() {
+ return cacheUpdate_ == null
+ ? com.google.spanner.v1.CacheUpdate.getDefaultInstance()
+ : cacheUpdate_;
+ }
+
private byte memoizedIsInitialized = -1;
@java.lang.Override
@@ -906,6 +980,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
if (((bitField0_ & 0x00000004) != 0)) {
output.writeMessage(5, getSnapshotTimestamp());
}
+ if (((bitField0_ & 0x00000008) != 0)) {
+ output.writeMessage(6, getCacheUpdate());
+ }
getUnknownFields().writeTo(output);
}
@@ -929,6 +1006,9 @@ public int getSerializedSize() {
if (((bitField0_ & 0x00000004) != 0)) {
size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getSnapshotTimestamp());
}
+ if (((bitField0_ & 0x00000008) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, getCacheUpdate());
+ }
size += getUnknownFields().getSerializedSize();
memoizedSize = size;
return size;
@@ -956,6 +1036,10 @@ public boolean equals(final java.lang.Object obj) {
if (hasSnapshotTimestamp()) {
if (!getSnapshotTimestamp().equals(other.getSnapshotTimestamp())) return false;
}
+ if (hasCacheUpdate() != other.hasCacheUpdate()) return false;
+ if (hasCacheUpdate()) {
+ if (!getCacheUpdate().equals(other.getCacheUpdate())) return false;
+ }
if (!getMultiplexedSessionRetryCase().equals(other.getMultiplexedSessionRetryCase()))
return false;
switch (multiplexedSessionRetryCase_) {
@@ -988,6 +1072,10 @@ public int hashCode() {
hash = (37 * hash) + SNAPSHOT_TIMESTAMP_FIELD_NUMBER;
hash = (53 * hash) + getSnapshotTimestamp().hashCode();
}
+ if (hasCacheUpdate()) {
+ hash = (37 * hash) + CACHE_UPDATE_FIELD_NUMBER;
+ hash = (53 * hash) + getCacheUpdate().hashCode();
+ }
switch (multiplexedSessionRetryCase_) {
case 4:
hash = (37 * hash) + PRECOMMIT_TOKEN_FIELD_NUMBER;
@@ -1139,6 +1227,7 @@ private void maybeForceBuilderInitialization() {
internalGetCommitTimestampFieldBuilder();
internalGetCommitStatsFieldBuilder();
internalGetSnapshotTimestampFieldBuilder();
+ internalGetCacheUpdateFieldBuilder();
}
}
@@ -1164,6 +1253,11 @@ public Builder clear() {
snapshotTimestampBuilder_.dispose();
snapshotTimestampBuilder_ = null;
}
+ cacheUpdate_ = null;
+ if (cacheUpdateBuilder_ != null) {
+ cacheUpdateBuilder_.dispose();
+ cacheUpdateBuilder_ = null;
+ }
multiplexedSessionRetryCase_ = 0;
multiplexedSessionRetry_ = null;
return this;
@@ -1220,6 +1314,11 @@ private void buildPartial0(com.google.spanner.v1.CommitResponse result) {
: snapshotTimestampBuilder_.build();
to_bitField0_ |= 0x00000004;
}
+ if (((from_bitField0_ & 0x00000010) != 0)) {
+ result.cacheUpdate_ =
+ cacheUpdateBuilder_ == null ? cacheUpdate_ : cacheUpdateBuilder_.build();
+ to_bitField0_ |= 0x00000008;
+ }
result.bitField0_ |= to_bitField0_;
}
@@ -1252,6 +1351,9 @@ public Builder mergeFrom(com.google.spanner.v1.CommitResponse other) {
if (other.hasSnapshotTimestamp()) {
mergeSnapshotTimestamp(other.getSnapshotTimestamp());
}
+ if (other.hasCacheUpdate()) {
+ mergeCacheUpdate(other.getCacheUpdate());
+ }
switch (other.getMultiplexedSessionRetryCase()) {
case PRECOMMIT_TOKEN:
{
@@ -1317,6 +1419,13 @@ public Builder mergeFrom(
bitField0_ |= 0x00000008;
break;
} // case 42
+ case 50:
+ {
+ input.readMessage(
+ internalGetCacheUpdateFieldBuilder().getBuilder(), extensionRegistry);
+ bitField0_ |= 0x00000010;
+ break;
+ } // case 50
default:
{
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
@@ -2212,6 +2321,263 @@ public com.google.protobuf.TimestampOrBuilder getSnapshotTimestampOrBuilder() {
return snapshotTimestampBuilder_;
}
+ private com.google.spanner.v1.CacheUpdate cacheUpdate_;
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.spanner.v1.CacheUpdate,
+ com.google.spanner.v1.CacheUpdate.Builder,
+ com.google.spanner.v1.CacheUpdateOrBuilder>
+ cacheUpdateBuilder_;
+
+ /**
+ *
+ *
+ *
+ * Optional. A cache update expresses a set of changes the client should
+ * incorporate into its location cache. The client should discard the changes
+ * if they are older than the data it already has. This data can be obtained
+ * in response to requests that included a `RoutingHint` field, but may also
+ * be obtained by explicit location-fetching RPCs which may be added in the
+ * future.
+ *
+ *
+ *
+ * .google.spanner.v1.CacheUpdate cache_update = 6 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return Whether the cacheUpdate field is set.
+ */
+ public boolean hasCacheUpdate() {
+ return ((bitField0_ & 0x00000010) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A cache update expresses a set of changes the client should
+ * incorporate into its location cache. The client should discard the changes
+ * if they are older than the data it already has. This data can be obtained
+ * in response to requests that included a `RoutingHint` field, but may also
+ * be obtained by explicit location-fetching RPCs which may be added in the
+ * future.
+ *
+ *
+ *
+ * .google.spanner.v1.CacheUpdate cache_update = 6 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The cacheUpdate.
+ */
+ public com.google.spanner.v1.CacheUpdate getCacheUpdate() {
+ if (cacheUpdateBuilder_ == null) {
+ return cacheUpdate_ == null
+ ? com.google.spanner.v1.CacheUpdate.getDefaultInstance()
+ : cacheUpdate_;
+ } else {
+ return cacheUpdateBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A cache update expresses a set of changes the client should
+ * incorporate into its location cache. The client should discard the changes
+ * if they are older than the data it already has. This data can be obtained
+ * in response to requests that included a `RoutingHint` field, but may also
+ * be obtained by explicit location-fetching RPCs which may be added in the
+ * future.
+ *
+ *
+ *
+ * .google.spanner.v1.CacheUpdate cache_update = 6 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder setCacheUpdate(com.google.spanner.v1.CacheUpdate value) {
+ if (cacheUpdateBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ cacheUpdate_ = value;
+ } else {
+ cacheUpdateBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A cache update expresses a set of changes the client should
+ * incorporate into its location cache. The client should discard the changes
+ * if they are older than the data it already has. This data can be obtained
+ * in response to requests that included a `RoutingHint` field, but may also
+ * be obtained by explicit location-fetching RPCs which may be added in the
+ * future.
+ *
+ *
+ *
+ * .google.spanner.v1.CacheUpdate cache_update = 6 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder setCacheUpdate(com.google.spanner.v1.CacheUpdate.Builder builderForValue) {
+ if (cacheUpdateBuilder_ == null) {
+ cacheUpdate_ = builderForValue.build();
+ } else {
+ cacheUpdateBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A cache update expresses a set of changes the client should
+ * incorporate into its location cache. The client should discard the changes
+ * if they are older than the data it already has. This data can be obtained
+ * in response to requests that included a `RoutingHint` field, but may also
+ * be obtained by explicit location-fetching RPCs which may be added in the
+ * future.
+ *
+ *
+ *
+ * .google.spanner.v1.CacheUpdate cache_update = 6 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder mergeCacheUpdate(com.google.spanner.v1.CacheUpdate value) {
+ if (cacheUpdateBuilder_ == null) {
+ if (((bitField0_ & 0x00000010) != 0)
+ && cacheUpdate_ != null
+ && cacheUpdate_ != com.google.spanner.v1.CacheUpdate.getDefaultInstance()) {
+ getCacheUpdateBuilder().mergeFrom(value);
+ } else {
+ cacheUpdate_ = value;
+ }
+ } else {
+ cacheUpdateBuilder_.mergeFrom(value);
+ }
+ if (cacheUpdate_ != null) {
+ bitField0_ |= 0x00000010;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A cache update expresses a set of changes the client should
+ * incorporate into its location cache. The client should discard the changes
+ * if they are older than the data it already has. This data can be obtained
+ * in response to requests that included a `RoutingHint` field, but may also
+ * be obtained by explicit location-fetching RPCs which may be added in the
+ * future.
+ *
+ *
+ *
+ * .google.spanner.v1.CacheUpdate cache_update = 6 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder clearCacheUpdate() {
+ bitField0_ = (bitField0_ & ~0x00000010);
+ cacheUpdate_ = null;
+ if (cacheUpdateBuilder_ != null) {
+ cacheUpdateBuilder_.dispose();
+ cacheUpdateBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A cache update expresses a set of changes the client should
+ * incorporate into its location cache. The client should discard the changes
+ * if they are older than the data it already has. This data can be obtained
+ * in response to requests that included a `RoutingHint` field, but may also
+ * be obtained by explicit location-fetching RPCs which may be added in the
+ * future.
+ *
+ *
+ *
+ * .google.spanner.v1.CacheUpdate cache_update = 6 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public com.google.spanner.v1.CacheUpdate.Builder getCacheUpdateBuilder() {
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return internalGetCacheUpdateFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A cache update expresses a set of changes the client should
+ * incorporate into its location cache. The client should discard the changes
+ * if they are older than the data it already has. This data can be obtained
+ * in response to requests that included a `RoutingHint` field, but may also
+ * be obtained by explicit location-fetching RPCs which may be added in the
+ * future.
+ *
+ *
+ *
+ * .google.spanner.v1.CacheUpdate cache_update = 6 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public com.google.spanner.v1.CacheUpdateOrBuilder getCacheUpdateOrBuilder() {
+ if (cacheUpdateBuilder_ != null) {
+ return cacheUpdateBuilder_.getMessageOrBuilder();
+ } else {
+ return cacheUpdate_ == null
+ ? com.google.spanner.v1.CacheUpdate.getDefaultInstance()
+ : cacheUpdate_;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A cache update expresses a set of changes the client should
+ * incorporate into its location cache. The client should discard the changes
+ * if they are older than the data it already has. This data can be obtained
+ * in response to requests that included a `RoutingHint` field, but may also
+ * be obtained by explicit location-fetching RPCs which may be added in the
+ * future.
+ *
+ *
+ *
+ * .google.spanner.v1.CacheUpdate cache_update = 6 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.spanner.v1.CacheUpdate,
+ com.google.spanner.v1.CacheUpdate.Builder,
+ com.google.spanner.v1.CacheUpdateOrBuilder>
+ internalGetCacheUpdateFieldBuilder() {
+ if (cacheUpdateBuilder_ == null) {
+ cacheUpdateBuilder_ =
+ new com.google.protobuf.SingleFieldBuilder<
+ com.google.spanner.v1.CacheUpdate,
+ com.google.spanner.v1.CacheUpdate.Builder,
+ com.google.spanner.v1.CacheUpdateOrBuilder>(
+ getCacheUpdate(), getParentForChildren(), isClean());
+ cacheUpdate_ = null;
+ }
+ return cacheUpdateBuilder_;
+ }
+
// @@protoc_insertion_point(builder_scope:google.spanner.v1.CommitResponse)
}
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CommitResponseOrBuilder.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CommitResponseOrBuilder.java
index a512bf3eb25..bf00f8accf4 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CommitResponseOrBuilder.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CommitResponseOrBuilder.java
@@ -192,5 +192,63 @@ public interface CommitResponseOrBuilder
*/
com.google.protobuf.TimestampOrBuilder getSnapshotTimestampOrBuilder();
+ /**
+ *
+ *
+ *
+ * Optional. A cache update expresses a set of changes the client should
+ * incorporate into its location cache. The client should discard the changes
+ * if they are older than the data it already has. This data can be obtained
+ * in response to requests that included a `RoutingHint` field, but may also
+ * be obtained by explicit location-fetching RPCs which may be added in the
+ * future.
+ *
+ *
+ *
+ * .google.spanner.v1.CacheUpdate cache_update = 6 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return Whether the cacheUpdate field is set.
+ */
+ boolean hasCacheUpdate();
+
+ /**
+ *
+ *
+ *
+ * Optional. A cache update expresses a set of changes the client should
+ * incorporate into its location cache. The client should discard the changes
+ * if they are older than the data it already has. This data can be obtained
+ * in response to requests that included a `RoutingHint` field, but may also
+ * be obtained by explicit location-fetching RPCs which may be added in the
+ * future.
+ *
+ *
+ *
+ * .google.spanner.v1.CacheUpdate cache_update = 6 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The cacheUpdate.
+ */
+ com.google.spanner.v1.CacheUpdate getCacheUpdate();
+
+ /**
+ *
+ *
+ *
+ * Optional. A cache update expresses a set of changes the client should
+ * incorporate into its location cache. The client should discard the changes
+ * if they are older than the data it already has. This data can be obtained
+ * in response to requests that included a `RoutingHint` field, but may also
+ * be obtained by explicit location-fetching RPCs which may be added in the
+ * future.
+ *
+ *
+ *
+ * .google.spanner.v1.CacheUpdate cache_update = 6 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ com.google.spanner.v1.CacheUpdateOrBuilder getCacheUpdateOrBuilder();
+
com.google.spanner.v1.CommitResponse.MultiplexedSessionRetryCase getMultiplexedSessionRetryCase();
}
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CommitResponseProto.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CommitResponseProto.java
index b995b6c2bde..31051dde3b6 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CommitResponseProto.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/CommitResponseProto.java
@@ -58,28 +58,33 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
static {
java.lang.String[] descriptorData = {
"\n\'google/spanner/v1/commit_response.prot"
- + "o\022\021google.spanner.v1\032\037google/protobuf/ti"
- + "mestamp.proto\032#google/spanner/v1/transac"
- + "tion.proto\"\325\002\n\016CommitResponse\0224\n\020commit_"
- + "timestamp\030\001 \001(\0132\032.google.protobuf.Timest"
- + "amp\022C\n\014commit_stats\030\002 \001(\0132-.google.spann"
- + "er.v1.CommitResponse.CommitStats\022N\n\017prec"
- + "ommit_token\030\004 \001(\01323.google.spanner.v1.Mu"
- + "ltiplexedSessionPrecommitTokenH\000\0226\n\022snap"
- + "shot_timestamp\030\005 \001(\0132\032.google.protobuf.T"
- + "imestamp\032%\n\013CommitStats\022\026\n\016mutation_coun"
- + "t\030\001 \001(\003B\031\n\027MultiplexedSessionRetryB\266\001\n\025c"
- + "om.google.spanner.v1B\023CommitResponseProt"
- + "oP\001Z5cloud.google.com/go/spanner/apiv1/s"
- + "pannerpb;spannerpb\252\002\027Google.Cloud.Spanne"
- + "r.V1\312\002\027Google\\Cloud\\Spanner\\V1\352\002\032Google:"
- + ":Cloud::Spanner::V1b\006proto3"
+ + "o\022\021google.spanner.v1\032\037google/api/field_b"
+ + "ehavior.proto\032\037google/protobuf/timestamp"
+ + ".proto\032 google/spanner/v1/location.proto"
+ + "\032#google/spanner/v1/transaction.proto\"\220\003"
+ + "\n\016CommitResponse\0224\n\020commit_timestamp\030\001 \001"
+ + "(\0132\032.google.protobuf.Timestamp\022C\n\014commit"
+ + "_stats\030\002 \001(\0132-.google.spanner.v1.CommitR"
+ + "esponse.CommitStats\022N\n\017precommit_token\030\004"
+ + " \001(\01323.google.spanner.v1.MultiplexedSess"
+ + "ionPrecommitTokenH\000\0226\n\022snapshot_timestam"
+ + "p\030\005 \001(\0132\032.google.protobuf.Timestamp\0229\n\014c"
+ + "ache_update\030\006 \001(\0132\036.google.spanner.v1.Ca"
+ + "cheUpdateB\003\340A\001\032%\n\013CommitStats\022\026\n\016mutatio"
+ + "n_count\030\001 \001(\003B\031\n\027MultiplexedSessionRetry"
+ + "B\266\001\n\025com.google.spanner.v1B\023CommitRespon"
+ + "seProtoP\001Z5cloud.google.com/go/spanner/a"
+ + "piv1/spannerpb;spannerpb\252\002\027Google.Cloud."
+ + "Spanner.V1\312\002\027Google\\Cloud\\Spanner\\V1\352\002\032G"
+ + "oogle::Cloud::Spanner::V1b\006proto3"
};
descriptor =
com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
descriptorData,
new com.google.protobuf.Descriptors.FileDescriptor[] {
+ com.google.api.FieldBehaviorProto.getDescriptor(),
com.google.protobuf.TimestampProto.getDescriptor(),
+ com.google.spanner.v1.LocationProto.getDescriptor(),
com.google.spanner.v1.TransactionProto.getDescriptor(),
});
internal_static_google_spanner_v1_CommitResponse_descriptor = getDescriptor().getMessageType(0);
@@ -91,6 +96,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"CommitStats",
"PrecommitToken",
"SnapshotTimestamp",
+ "CacheUpdate",
"MultiplexedSessionRetry",
});
internal_static_google_spanner_v1_CommitResponse_CommitStats_descriptor =
@@ -102,8 +108,15 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"MutationCount",
});
descriptor.resolveAllFeaturesImmutable();
+ com.google.api.FieldBehaviorProto.getDescriptor();
com.google.protobuf.TimestampProto.getDescriptor();
+ com.google.spanner.v1.LocationProto.getDescriptor();
com.google.spanner.v1.TransactionProto.getDescriptor();
+ com.google.protobuf.ExtensionRegistry registry =
+ com.google.protobuf.ExtensionRegistry.newInstance();
+ registry.add(com.google.api.FieldBehaviorProto.fieldBehavior);
+ com.google.protobuf.Descriptors.FileDescriptor.internalUpdateFileDescriptor(
+ descriptor, registry);
}
// @@protoc_insertion_point(outer_class_scope)
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteSqlRequest.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteSqlRequest.java
index e11dcb2abab..c4fb3c56ef0 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteSqlRequest.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteSqlRequest.java
@@ -2292,7 +2292,7 @@ public boolean getLastStatement() {
*
*
*
- * Optional. If present, it makes the Spanner requests location-aware.
+ * Optional. Makes the Spanner requests location-aware if present.
*
* It gives the server hints that can be used to route the request
* to an appropriate server, potentially significantly decreasing latency and
@@ -2315,7 +2315,7 @@ public boolean hasRoutingHint() {
*
*
*
- * Optional. If present, it makes the Spanner requests location-aware.
+ * Optional. Makes the Spanner requests location-aware if present.
*
* It gives the server hints that can be used to route the request
* to an appropriate server, potentially significantly decreasing latency and
@@ -2340,7 +2340,7 @@ public com.google.spanner.v1.RoutingHint getRoutingHint() {
*
*
*
- * Optional. If present, it makes the Spanner requests location-aware.
+ * Optional. Makes the Spanner requests location-aware if present.
*
* It gives the server hints that can be used to route the request
* to an appropriate server, potentially significantly decreasing latency and
@@ -5302,7 +5302,7 @@ public Builder clearLastStatement() {
*
*
*
- * Optional. If present, it makes the Spanner requests location-aware.
+ * Optional. Makes the Spanner requests location-aware if present.
*
* It gives the server hints that can be used to route the request
* to an appropriate server, potentially significantly decreasing latency and
@@ -5324,7 +5324,7 @@ public boolean hasRoutingHint() {
*
*
*
- * Optional. If present, it makes the Spanner requests location-aware.
+ * Optional. Makes the Spanner requests location-aware if present.
*
* It gives the server hints that can be used to route the request
* to an appropriate server, potentially significantly decreasing latency and
@@ -5352,7 +5352,7 @@ public com.google.spanner.v1.RoutingHint getRoutingHint() {
*
*
*
- * Optional. If present, it makes the Spanner requests location-aware.
+ * Optional. Makes the Spanner requests location-aware if present.
*
* It gives the server hints that can be used to route the request
* to an appropriate server, potentially significantly decreasing latency and
@@ -5382,7 +5382,7 @@ public Builder setRoutingHint(com.google.spanner.v1.RoutingHint value) {
*
*
*
- * Optional. If present, it makes the Spanner requests location-aware.
+ * Optional. Makes the Spanner requests location-aware if present.
*
* It gives the server hints that can be used to route the request
* to an appropriate server, potentially significantly decreasing latency and
@@ -5409,7 +5409,7 @@ public Builder setRoutingHint(com.google.spanner.v1.RoutingHint.Builder builderF
*
*
*
- * Optional. If present, it makes the Spanner requests location-aware.
+ * Optional. Makes the Spanner requests location-aware if present.
*
* It gives the server hints that can be used to route the request
* to an appropriate server, potentially significantly decreasing latency and
@@ -5444,7 +5444,7 @@ public Builder mergeRoutingHint(com.google.spanner.v1.RoutingHint value) {
*
*
*
- * Optional. If present, it makes the Spanner requests location-aware.
+ * Optional. Makes the Spanner requests location-aware if present.
*
* It gives the server hints that can be used to route the request
* to an appropriate server, potentially significantly decreasing latency and
@@ -5471,7 +5471,7 @@ public Builder clearRoutingHint() {
*
*
*
- * Optional. If present, it makes the Spanner requests location-aware.
+ * Optional. Makes the Spanner requests location-aware if present.
*
* It gives the server hints that can be used to route the request
* to an appropriate server, potentially significantly decreasing latency and
@@ -5493,7 +5493,7 @@ public com.google.spanner.v1.RoutingHint.Builder getRoutingHintBuilder() {
*
*
*
- * Optional. If present, it makes the Spanner requests location-aware.
+ * Optional. Makes the Spanner requests location-aware if present.
*
* It gives the server hints that can be used to route the request
* to an appropriate server, potentially significantly decreasing latency and
@@ -5519,7 +5519,7 @@ public com.google.spanner.v1.RoutingHintOrBuilder getRoutingHintOrBuilder() {
*
*
*
- * Optional. If present, it makes the Spanner requests location-aware.
+ * Optional. Makes the Spanner requests location-aware if present.
*
* It gives the server hints that can be used to route the request
* to an appropriate server, potentially significantly decreasing latency and
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteSqlRequestOrBuilder.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteSqlRequestOrBuilder.java
index 40fb3b2d5fe..c72df5d5568 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteSqlRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteSqlRequestOrBuilder.java
@@ -567,7 +567,7 @@ com.google.spanner.v1.Type getParamTypesOrDefault(
*
*
*
- * Optional. If present, it makes the Spanner requests location-aware.
+ * Optional. Makes the Spanner requests location-aware if present.
*
* It gives the server hints that can be used to route the request
* to an appropriate server, potentially significantly decreasing latency and
@@ -587,7 +587,7 @@ com.google.spanner.v1.Type getParamTypesOrDefault(
*
*
*
- * Optional. If present, it makes the Spanner requests location-aware.
+ * Optional. Makes the Spanner requests location-aware if present.
*
* It gives the server hints that can be used to route the request
* to an appropriate server, potentially significantly decreasing latency and
@@ -607,7 +607,7 @@ com.google.spanner.v1.Type getParamTypesOrDefault(
*
*
*
- * Optional. If present, it makes the Spanner requests location-aware.
+ * Optional. Makes the Spanner requests location-aware if present.
*
* It gives the server hints that can be used to route the request
* to an appropriate server, potentially significantly decreasing latency and
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ReadRequest.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ReadRequest.java
index 8f559692c21..692d4e3f994 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ReadRequest.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ReadRequest.java
@@ -1195,7 +1195,7 @@ public com.google.spanner.v1.ReadRequest.LockHint getLockHint() {
*
*
*
- * Optional. If present, it makes the Spanner requests location-aware.
+ * Optional. Makes the Spanner requests location-aware if present.
*
* It gives the server hints that can be used to route the request
* to an appropriate server, potentially significantly decreasing latency and
@@ -1218,7 +1218,7 @@ public boolean hasRoutingHint() {
*
*
*
- * Optional. If present, it makes the Spanner requests location-aware.
+ * Optional. Makes the Spanner requests location-aware if present.
*
* It gives the server hints that can be used to route the request
* to an appropriate server, potentially significantly decreasing latency and
@@ -1243,7 +1243,7 @@ public com.google.spanner.v1.RoutingHint getRoutingHint() {
*
*
*
- * Optional. If present, it makes the Spanner requests location-aware.
+ * Optional. Makes the Spanner requests location-aware if present.
*
* It gives the server hints that can be used to route the request
* to an appropriate server, potentially significantly decreasing latency and
@@ -3983,7 +3983,7 @@ public Builder clearLockHint() {
*
*
*
- * Optional. If present, it makes the Spanner requests location-aware.
+ * Optional. Makes the Spanner requests location-aware if present.
*
* It gives the server hints that can be used to route the request
* to an appropriate server, potentially significantly decreasing latency and
@@ -4005,7 +4005,7 @@ public boolean hasRoutingHint() {
*
*
*
- * Optional. If present, it makes the Spanner requests location-aware.
+ * Optional. Makes the Spanner requests location-aware if present.
*
* It gives the server hints that can be used to route the request
* to an appropriate server, potentially significantly decreasing latency and
@@ -4033,7 +4033,7 @@ public com.google.spanner.v1.RoutingHint getRoutingHint() {
*
*
*
- * Optional. If present, it makes the Spanner requests location-aware.
+ * Optional. Makes the Spanner requests location-aware if present.
*
* It gives the server hints that can be used to route the request
* to an appropriate server, potentially significantly decreasing latency and
@@ -4063,7 +4063,7 @@ public Builder setRoutingHint(com.google.spanner.v1.RoutingHint value) {
*
*
*
- * Optional. If present, it makes the Spanner requests location-aware.
+ * Optional. Makes the Spanner requests location-aware if present.
*
* It gives the server hints that can be used to route the request
* to an appropriate server, potentially significantly decreasing latency and
@@ -4090,7 +4090,7 @@ public Builder setRoutingHint(com.google.spanner.v1.RoutingHint.Builder builderF
*
*
*
- * Optional. If present, it makes the Spanner requests location-aware.
+ * Optional. Makes the Spanner requests location-aware if present.
*
* It gives the server hints that can be used to route the request
* to an appropriate server, potentially significantly decreasing latency and
@@ -4125,7 +4125,7 @@ public Builder mergeRoutingHint(com.google.spanner.v1.RoutingHint value) {
*
*
*
- * Optional. If present, it makes the Spanner requests location-aware.
+ * Optional. Makes the Spanner requests location-aware if present.
*
* It gives the server hints that can be used to route the request
* to an appropriate server, potentially significantly decreasing latency and
@@ -4152,7 +4152,7 @@ public Builder clearRoutingHint() {
*
*
*
- * Optional. If present, it makes the Spanner requests location-aware.
+ * Optional. Makes the Spanner requests location-aware if present.
*
* It gives the server hints that can be used to route the request
* to an appropriate server, potentially significantly decreasing latency and
@@ -4174,7 +4174,7 @@ public com.google.spanner.v1.RoutingHint.Builder getRoutingHintBuilder() {
*
*
*
- * Optional. If present, it makes the Spanner requests location-aware.
+ * Optional. Makes the Spanner requests location-aware if present.
*
* It gives the server hints that can be used to route the request
* to an appropriate server, potentially significantly decreasing latency and
@@ -4200,7 +4200,7 @@ public com.google.spanner.v1.RoutingHintOrBuilder getRoutingHintOrBuilder() {
*
*
*
- * Optional. If present, it makes the Spanner requests location-aware.
+ * Optional. Makes the Spanner requests location-aware if present.
*
* It gives the server hints that can be used to route the request
* to an appropriate server, potentially significantly decreasing latency and
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ReadRequestOrBuilder.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ReadRequestOrBuilder.java
index b03af46ce8d..812bf0956b6 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ReadRequestOrBuilder.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ReadRequestOrBuilder.java
@@ -518,7 +518,7 @@ public interface ReadRequestOrBuilder
*
*
*
- * Optional. If present, it makes the Spanner requests location-aware.
+ * Optional. Makes the Spanner requests location-aware if present.
*
* It gives the server hints that can be used to route the request
* to an appropriate server, potentially significantly decreasing latency and
@@ -538,7 +538,7 @@ public interface ReadRequestOrBuilder
*
*
*
- * Optional. If present, it makes the Spanner requests location-aware.
+ * Optional. Makes the Spanner requests location-aware if present.
*
* It gives the server hints that can be used to route the request
* to an appropriate server, potentially significantly decreasing latency and
@@ -558,7 +558,7 @@ public interface ReadRequestOrBuilder
*
*
*
- * Optional. If present, it makes the Spanner requests location-aware.
+ * Optional. Makes the Spanner requests location-aware if present.
*
* It gives the server hints that can be used to route the request
* to an appropriate server, potentially significantly decreasing latency and
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/SpannerProto.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/SpannerProto.java
index e817131391b..e69777ee73f 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/SpannerProto.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/SpannerProto.java
@@ -398,7 +398,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\010LockHint\022\031\n"
+ "\025LOCK_HINT_UNSPECIFIED\020\000\022\024\n"
+ "\020LOCK_HINT_SHARED\020\001\022\027\n"
- + "\023LOCK_HINT_EXCLUSIVE\020\002\"\203\002\n"
+ + "\023LOCK_HINT_EXCLUSIVE\020\002\"\276\002\n"
+ "\027BeginTransactionRequest\0227\n"
+ "\007session\030\001 \001(\tB&\340A\002\372A \n"
+ "\036spanner.googleapis.com/Session\022;\n"
@@ -406,20 +406,24 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ " \001(\0132%.google.spanner.v1.TransactionOptionsB\003\340A\002\022:\n"
+ "\017request_options\030\003 \001(\0132!.google.spanner.v1.RequestOptions\0226\n"
+ "\014mutation_key\030\004"
- + " \001(\0132\033.google.spanner.v1.MutationB\003\340A\001\"\320\003\n\r"
+ + " \001(\0132\033.google.spanner.v1.MutationB\003\340A\001\0229\n"
+ + "\014routing_hint\030\005"
+ + " \001(\0132\036.google.spanner.v1.RoutingHintB\003\340A\001\"\213\004\n\r"
+ "CommitRequest\0227\n"
+ "\007session\030\001 \001(\tB&\340A\002\372A \n"
+ "\036spanner.googleapis.com/Session\022\030\n"
+ "\016transaction_id\030\002 \001(\014H\000\022G\n"
- + "\026single_use_transaction\030\003"
- + " \001(\0132%.google.spanner.v1.TransactionOptionsH\000\022.\n"
+ + "\026single_use_transaction\030\003 \001(\013"
+ + "2%.google.spanner.v1.TransactionOptionsH\000\022.\n"
+ "\tmutations\030\004 \003(\0132\033.google.spanner.v1.Mutation\022\033\n"
+ "\023return_commit_stats\030\005 \001(\010\0228\n"
+ "\020max_commit_delay\030\010"
+ " \001(\0132\031.google.protobuf.DurationB\003\340A\001\022:\n"
+ "\017request_options\030\006 \001(\0132!.google.spanner.v1.RequestOptions\022Q\n"
- + "\017precommit_token\030\t \001"
- + "(\01323.google.spanner.v1.MultiplexedSessionPrecommitTokenB\003\340A\001B\r\n"
+ + "\017precommit_token\030\t \001(\01323.google.spanner.v"
+ + "1.MultiplexedSessionPrecommitTokenB\003\340A\001\0229\n"
+ + "\014routing_hint\030\n"
+ + " \001(\0132\036.google.spanner.v1.RoutingHintB\003\340A\001B\r\n"
+ "\013transaction\"g\n"
+ "\017RollbackRequest\0227\n"
+ "\007session\030\001 \001(\tB&\340A\002\372A \n"
@@ -429,8 +433,8 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\007session\030\001 \001(\tB&\340A\002\372A \n"
+ "\036spanner.googleapis.com/Session\022:\n"
+ "\017request_options\030\003 \001(\0132!.google.spanner.v1.RequestOptions\022P\n"
- + "\017mutation_groups\030\004 \003(\01322.google.spanne"
- + "r.v1.BatchWriteRequest.MutationGroupB\003\340A\002\022,\n"
+ + "\017mutation_groups\030\004 \003(\01322.google.spanner."
+ + "v1.BatchWriteRequest.MutationGroupB\003\340A\002\022,\n"
+ "\037exclude_txn_from_change_streams\030\005 \001(\010B\003\340A\001\032D\n\r"
+ "MutationGroup\0223\n"
+ "\tmutations\030\001 \003(\0132\033.google.spanner.v1.MutationB\003\340A\002\"\177\n"
@@ -439,72 +443,73 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\006status\030\002 \001(\0132\022.google.rpc.Status\0224\n"
+ "\020commit_timestamp\030\003 \001(\0132\032.google.protobuf.Timestamp2\213\030\n"
+ "\007Spanner\022\246\001\n\r"
- + "CreateSession\022\'.google.spanner.v1.CreateSessionRequest\032\032."
- + "google.spanner.v1.Session\"P\332A\010database\202\323"
- + "\344\223\002?\":/v1/{database=projects/*/instances/*/databases/*}/sessions:\001*\022\340\001\n"
- + "\023BatchCreateSessions\022-.google.spanner.v1.BatchCre"
- + "ateSessionsRequest\032..google.spanner.v1.B"
- + "atchCreateSessionsResponse\"j\332A\026database,"
- + "session_count\202\323\344\223\002K\"F/v1/{database=proje"
- + "cts/*/instances/*/databases/*}/sessions:batchCreate:\001*\022\227\001\n\n"
- + "GetSession\022$.google.spanner.v1.GetSessionRequest\032\032.google.spa"
- + "nner.v1.Session\"G\332A\004name\202\323\344\223\002:\0228/v1/{nam"
- + "e=projects/*/instances/*/databases/*/sessions/*}\022\256\001\n"
- + "\014ListSessions\022&.google.spanner.v1.ListSessionsRequest\032\'.google.spann"
- + "er.v1.ListSessionsResponse\"M\332A\010database\202"
- + "\323\344\223\002<\022:/v1/{database=projects/*/instances/*/databases/*}/sessions\022\231\001\n\r"
- + "DeleteSession\022\'.google.spanner.v1.DeleteSessionReq"
- + "uest\032\026.google.protobuf.Empty\"G\332A\004name\202\323\344"
- + "\223\002:*8/v1/{name=projects/*/instances/*/databases/*/sessions/*}\022\243\001\n\n"
- + "ExecuteSql\022$.google.spanner.v1.ExecuteSqlRequest\032\034.goo"
- + "gle.spanner.v1.ResultSet\"Q\202\323\344\223\002K\"F/v1/{s"
- + "ession=projects/*/instances/*/databases/*/sessions/*}:executeSql:\001*\022\276\001\n"
- + "\023ExecuteStreamingSql\022$.google.spanner.v1.ExecuteS"
- + "qlRequest\032#.google.spanner.v1.PartialRes"
- + "ultSet\"Z\202\323\344\223\002T\"O/v1/{session=projects/*/"
- + "instances/*/databases/*/sessions/*}:executeStreamingSql:\001*0\001\022\300\001\n"
- + "\017ExecuteBatchDml\022).google.spanner.v1.ExecuteBatchDmlRequ"
- + "est\032*.google.spanner.v1.ExecuteBatchDmlR"
- + "esponse\"V\202\323\344\223\002P\"K/v1/{session=projects/*"
- + "/instances/*/databases/*/sessions/*}:executeBatchDml:\001*\022\221\001\n"
- + "\004Read\022\036.google.spanner.v1.ReadRequest\032\034.google.spanner.v1.Res"
- + "ultSet\"K\202\323\344\223\002E\"@/v1/{session=projects/*/"
- + "instances/*/databases/*/sessions/*}:read:\001*\022\254\001\n\r"
- + "StreamingRead\022\036.google.spanner.v1.ReadRequest\032#.google.spanner.v1.Partia"
- + "lResultSet\"T\202\323\344\223\002N\"I/v1/{session=project"
- + "s/*/instances/*/databases/*/sessions/*}:streamingRead:\001*0\001\022\311\001\n"
- + "\020BeginTransaction\022*.google.spanner.v1.BeginTransactionRequ"
- + "est\032\036.google.spanner.v1.Transaction\"i\332A\017"
- + "session,options\202\323\344\223\002Q\"L/v1/{session=proj"
- + "ects/*/instances/*/databases/*/sessions/*}:beginTransaction:\001*\022\353\001\n"
- + "\006Commit\022 .goog"
- + "le.spanner.v1.CommitRequest\032!.google.spanner.v1.CommitResponse\"\233\001\332A"
- + " session,transaction_id,mutations\332A(session,single_us"
- + "e_transaction,mutations\202\323\344\223\002G\"B/v1/{sess"
- + "ion=projects/*/instances/*/databases/*/sessions/*}:commit:\001*\022\260\001\n"
- + "\010Rollback\022\".google.spanner.v1.RollbackRequest\032\026.google.p"
- + "rotobuf.Empty\"h\332A\026session,transaction_id"
- + "\202\323\344\223\002I\"D/v1/{session=projects/*/instance"
- + "s/*/databases/*/sessions/*}:rollback:\001*\022\267\001\n"
- + "\016PartitionQuery\022(.google.spanner.v1.PartitionQueryRequest\032$.google.spanner.v1"
- + ".PartitionResponse\"U\202\323\344\223\002O\"J/v1/{session"
- + "=projects/*/instances/*/databases/*/sessions/*}:partitionQuery:\001*\022\264\001\n\r"
- + "PartitionRead\022\'.google.spanner.v1.PartitionReadReq"
- + "uest\032$.google.spanner.v1.PartitionRespon"
- + "se\"T\202\323\344\223\002N\"I/v1/{session=projects/*/inst"
- + "ances/*/databases/*/sessions/*}:partitionRead:\001*\022\310\001\n\n"
- + "BatchWrite\022$.google.spanner.v1.BatchWriteRequest\032%.google.spanner.v"
- + "1.BatchWriteResponse\"k\332A\027session,mutatio"
- + "n_groups\202\323\344\223\002K\"F/v1/{session=projects/*/"
- + "instances/*/databases/*/sessions/*}:batc"
- + "hWrite:\001*0\001\032w\312A\026spanner.googleapis.com\322A"
- + "[https://www.googleapis.com/auth/cloud-p"
- + "latform,https://www.googleapis.com/auth/spanner.dataB\221\002\n"
- + "\025com.google.spanner.v1B\014SpannerProtoP\001Z5cloud.google.com/go/span"
- + "ner/apiv1/spannerpb;spannerpb\252\002\027Google.C"
- + "loud.Spanner.V1\312\002\027Google\\Cloud\\Spanner\\V1\352\002\032Google::Cloud::Spanner::V1\352A_\n"
- + "\037spanner.googleapis.com/Database\022
+ * Optional. A cache update expresses a set of changes the client should
+ * incorporate into its location cache. The client should discard the changes
+ * if they are older than the data it already has. This data can be obtained
+ * in response to requests that included a `RoutingHint` field, but may also
+ * be obtained by explicit location-fetching RPCs which may be added in the
+ * future.
+ *
+ *
+ *
+ * .google.spanner.v1.CacheUpdate cache_update = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return Whether the cacheUpdate field is set.
+ */
+ @java.lang.Override
+ public boolean hasCacheUpdate() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A cache update expresses a set of changes the client should
+ * incorporate into its location cache. The client should discard the changes
+ * if they are older than the data it already has. This data can be obtained
+ * in response to requests that included a `RoutingHint` field, but may also
+ * be obtained by explicit location-fetching RPCs which may be added in the
+ * future.
+ *
+ *
+ *
+ * .google.spanner.v1.CacheUpdate cache_update = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The cacheUpdate.
+ */
+ @java.lang.Override
+ public com.google.spanner.v1.CacheUpdate getCacheUpdate() {
+ return cacheUpdate_ == null
+ ? com.google.spanner.v1.CacheUpdate.getDefaultInstance()
+ : cacheUpdate_;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A cache update expresses a set of changes the client should
+ * incorporate into its location cache. The client should discard the changes
+ * if they are older than the data it already has. This data can be obtained
+ * in response to requests that included a `RoutingHint` field, but may also
+ * be obtained by explicit location-fetching RPCs which may be added in the
+ * future.
+ *
+ *
+ *
+ * .google.spanner.v1.CacheUpdate cache_update = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ @java.lang.Override
+ public com.google.spanner.v1.CacheUpdateOrBuilder getCacheUpdateOrBuilder() {
+ return cacheUpdate_ == null
+ ? com.google.spanner.v1.CacheUpdate.getDefaultInstance()
+ : cacheUpdate_;
+ }
+
private byte memoizedIsInitialized = -1;
@java.lang.Override
@@ -260,6 +334,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
if (((bitField0_ & 0x00000002) != 0)) {
output.writeMessage(3, getPrecommitToken());
}
+ if (((bitField0_ & 0x00000004) != 0)) {
+ output.writeMessage(5, getCacheUpdate());
+ }
getUnknownFields().writeTo(output);
}
@@ -278,6 +355,9 @@ public int getSerializedSize() {
if (((bitField0_ & 0x00000002) != 0)) {
size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getPrecommitToken());
}
+ if (((bitField0_ & 0x00000004) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getCacheUpdate());
+ }
size += getUnknownFields().getSerializedSize();
memoizedSize = size;
return size;
@@ -302,6 +382,10 @@ public boolean equals(final java.lang.Object obj) {
if (hasPrecommitToken()) {
if (!getPrecommitToken().equals(other.getPrecommitToken())) return false;
}
+ if (hasCacheUpdate() != other.hasCacheUpdate()) return false;
+ if (hasCacheUpdate()) {
+ if (!getCacheUpdate().equals(other.getCacheUpdate())) return false;
+ }
if (!getUnknownFields().equals(other.getUnknownFields())) return false;
return true;
}
@@ -323,6 +407,10 @@ public int hashCode() {
hash = (37 * hash) + PRECOMMIT_TOKEN_FIELD_NUMBER;
hash = (53 * hash) + getPrecommitToken().hashCode();
}
+ if (hasCacheUpdate()) {
+ hash = (37 * hash) + CACHE_UPDATE_FIELD_NUMBER;
+ hash = (53 * hash) + getCacheUpdate().hashCode();
+ }
hash = (29 * hash) + getUnknownFields().hashCode();
memoizedHashCode = hash;
return hash;
@@ -465,6 +553,7 @@ private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
internalGetReadTimestampFieldBuilder();
internalGetPrecommitTokenFieldBuilder();
+ internalGetCacheUpdateFieldBuilder();
}
}
@@ -483,6 +572,11 @@ public Builder clear() {
precommitTokenBuilder_.dispose();
precommitTokenBuilder_ = null;
}
+ cacheUpdate_ = null;
+ if (cacheUpdateBuilder_ != null) {
+ cacheUpdateBuilder_.dispose();
+ cacheUpdateBuilder_ = null;
+ }
return this;
}
@@ -532,6 +626,11 @@ private void buildPartial0(com.google.spanner.v1.Transaction result) {
precommitTokenBuilder_ == null ? precommitToken_ : precommitTokenBuilder_.build();
to_bitField0_ |= 0x00000002;
}
+ if (((from_bitField0_ & 0x00000008) != 0)) {
+ result.cacheUpdate_ =
+ cacheUpdateBuilder_ == null ? cacheUpdate_ : cacheUpdateBuilder_.build();
+ to_bitField0_ |= 0x00000004;
+ }
result.bitField0_ |= to_bitField0_;
}
@@ -556,6 +655,9 @@ public Builder mergeFrom(com.google.spanner.v1.Transaction other) {
if (other.hasPrecommitToken()) {
mergePrecommitToken(other.getPrecommitToken());
}
+ if (other.hasCacheUpdate()) {
+ mergeCacheUpdate(other.getCacheUpdate());
+ }
this.mergeUnknownFields(other.getUnknownFields());
onChanged();
return this;
@@ -602,6 +704,13 @@ public Builder mergeFrom(
bitField0_ |= 0x00000004;
break;
} // case 26
+ case 42:
+ {
+ input.readMessage(
+ internalGetCacheUpdateFieldBuilder().getBuilder(), extensionRegistry);
+ bitField0_ |= 0x00000008;
+ break;
+ } // case 42
default:
{
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
@@ -1192,6 +1301,263 @@ public Builder clearPrecommitToken() {
return precommitTokenBuilder_;
}
+ private com.google.spanner.v1.CacheUpdate cacheUpdate_;
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.spanner.v1.CacheUpdate,
+ com.google.spanner.v1.CacheUpdate.Builder,
+ com.google.spanner.v1.CacheUpdateOrBuilder>
+ cacheUpdateBuilder_;
+
+ /**
+ *
+ *
+ *
+ * Optional. A cache update expresses a set of changes the client should
+ * incorporate into its location cache. The client should discard the changes
+ * if they are older than the data it already has. This data can be obtained
+ * in response to requests that included a `RoutingHint` field, but may also
+ * be obtained by explicit location-fetching RPCs which may be added in the
+ * future.
+ *
+ *
+ *
+ * .google.spanner.v1.CacheUpdate cache_update = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return Whether the cacheUpdate field is set.
+ */
+ public boolean hasCacheUpdate() {
+ return ((bitField0_ & 0x00000008) != 0);
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A cache update expresses a set of changes the client should
+ * incorporate into its location cache. The client should discard the changes
+ * if they are older than the data it already has. This data can be obtained
+ * in response to requests that included a `RoutingHint` field, but may also
+ * be obtained by explicit location-fetching RPCs which may be added in the
+ * future.
+ *
+ *
+ *
+ * .google.spanner.v1.CacheUpdate cache_update = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The cacheUpdate.
+ */
+ public com.google.spanner.v1.CacheUpdate getCacheUpdate() {
+ if (cacheUpdateBuilder_ == null) {
+ return cacheUpdate_ == null
+ ? com.google.spanner.v1.CacheUpdate.getDefaultInstance()
+ : cacheUpdate_;
+ } else {
+ return cacheUpdateBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A cache update expresses a set of changes the client should
+ * incorporate into its location cache. The client should discard the changes
+ * if they are older than the data it already has. This data can be obtained
+ * in response to requests that included a `RoutingHint` field, but may also
+ * be obtained by explicit location-fetching RPCs which may be added in the
+ * future.
+ *
+ *
+ *
+ * .google.spanner.v1.CacheUpdate cache_update = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder setCacheUpdate(com.google.spanner.v1.CacheUpdate value) {
+ if (cacheUpdateBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ cacheUpdate_ = value;
+ } else {
+ cacheUpdateBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A cache update expresses a set of changes the client should
+ * incorporate into its location cache. The client should discard the changes
+ * if they are older than the data it already has. This data can be obtained
+ * in response to requests that included a `RoutingHint` field, but may also
+ * be obtained by explicit location-fetching RPCs which may be added in the
+ * future.
+ *
+ *
+ *
+ * .google.spanner.v1.CacheUpdate cache_update = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder setCacheUpdate(com.google.spanner.v1.CacheUpdate.Builder builderForValue) {
+ if (cacheUpdateBuilder_ == null) {
+ cacheUpdate_ = builderForValue.build();
+ } else {
+ cacheUpdateBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A cache update expresses a set of changes the client should
+ * incorporate into its location cache. The client should discard the changes
+ * if they are older than the data it already has. This data can be obtained
+ * in response to requests that included a `RoutingHint` field, but may also
+ * be obtained by explicit location-fetching RPCs which may be added in the
+ * future.
+ *
+ *
+ *
+ * .google.spanner.v1.CacheUpdate cache_update = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder mergeCacheUpdate(com.google.spanner.v1.CacheUpdate value) {
+ if (cacheUpdateBuilder_ == null) {
+ if (((bitField0_ & 0x00000008) != 0)
+ && cacheUpdate_ != null
+ && cacheUpdate_ != com.google.spanner.v1.CacheUpdate.getDefaultInstance()) {
+ getCacheUpdateBuilder().mergeFrom(value);
+ } else {
+ cacheUpdate_ = value;
+ }
+ } else {
+ cacheUpdateBuilder_.mergeFrom(value);
+ }
+ if (cacheUpdate_ != null) {
+ bitField0_ |= 0x00000008;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A cache update expresses a set of changes the client should
+ * incorporate into its location cache. The client should discard the changes
+ * if they are older than the data it already has. This data can be obtained
+ * in response to requests that included a `RoutingHint` field, but may also
+ * be obtained by explicit location-fetching RPCs which may be added in the
+ * future.
+ *
+ *
+ *
+ * .google.spanner.v1.CacheUpdate cache_update = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder clearCacheUpdate() {
+ bitField0_ = (bitField0_ & ~0x00000008);
+ cacheUpdate_ = null;
+ if (cacheUpdateBuilder_ != null) {
+ cacheUpdateBuilder_.dispose();
+ cacheUpdateBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A cache update expresses a set of changes the client should
+ * incorporate into its location cache. The client should discard the changes
+ * if they are older than the data it already has. This data can be obtained
+ * in response to requests that included a `RoutingHint` field, but may also
+ * be obtained by explicit location-fetching RPCs which may be added in the
+ * future.
+ *
+ *
+ *
+ * .google.spanner.v1.CacheUpdate cache_update = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public com.google.spanner.v1.CacheUpdate.Builder getCacheUpdateBuilder() {
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return internalGetCacheUpdateFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A cache update expresses a set of changes the client should
+ * incorporate into its location cache. The client should discard the changes
+ * if they are older than the data it already has. This data can be obtained
+ * in response to requests that included a `RoutingHint` field, but may also
+ * be obtained by explicit location-fetching RPCs which may be added in the
+ * future.
+ *
+ *
+ *
+ * .google.spanner.v1.CacheUpdate cache_update = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public com.google.spanner.v1.CacheUpdateOrBuilder getCacheUpdateOrBuilder() {
+ if (cacheUpdateBuilder_ != null) {
+ return cacheUpdateBuilder_.getMessageOrBuilder();
+ } else {
+ return cacheUpdate_ == null
+ ? com.google.spanner.v1.CacheUpdate.getDefaultInstance()
+ : cacheUpdate_;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * Optional. A cache update expresses a set of changes the client should
+ * incorporate into its location cache. The client should discard the changes
+ * if they are older than the data it already has. This data can be obtained
+ * in response to requests that included a `RoutingHint` field, but may also
+ * be obtained by explicit location-fetching RPCs which may be added in the
+ * future.
+ *
+ *
+ *
+ * .google.spanner.v1.CacheUpdate cache_update = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.spanner.v1.CacheUpdate,
+ com.google.spanner.v1.CacheUpdate.Builder,
+ com.google.spanner.v1.CacheUpdateOrBuilder>
+ internalGetCacheUpdateFieldBuilder() {
+ if (cacheUpdateBuilder_ == null) {
+ cacheUpdateBuilder_ =
+ new com.google.protobuf.SingleFieldBuilder<
+ com.google.spanner.v1.CacheUpdate,
+ com.google.spanner.v1.CacheUpdate.Builder,
+ com.google.spanner.v1.CacheUpdateOrBuilder>(
+ getCacheUpdate(), getParentForChildren(), isClean());
+ cacheUpdate_ = null;
+ }
+ return cacheUpdateBuilder_;
+ }
+
// @@protoc_insertion_point(builder_scope:google.spanner.v1.Transaction)
}
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionOptions.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionOptions.java
index 1c92862abe2..ecba9c42e3e 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionOptions.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionOptions.java
@@ -401,17 +401,15 @@ public enum ReadLockMode implements com.google.protobuf.ProtocolMessageEnum {
* Default value.
*
* * If isolation level is
+ * [SERIALIZABLE][google.spanner.v1.TransactionOptions.IsolationLevel.SERIALIZABLE],
+ * locking semantics default to `PESSIMISTIC`.
+ * * If isolation level is
* [REPEATABLE_READ][google.spanner.v1.TransactionOptions.IsolationLevel.REPEATABLE_READ],
- * then it is an error to specify `read_lock_mode`. Locking semantics
- * default to `OPTIMISTIC`. No validation checks are done for reads,
- * except to validate that the data that was served at the snapshot time
- * is unchanged at commit time in the following cases:
- * 1. reads done as part of queries that use `SELECT FOR UPDATE`
- * 2. reads done as part of statements with a `LOCK_SCANNED_RANGES`
- * hint
- * 3. reads done as part of DML statements
- * * At all other isolation levels, if `read_lock_mode` is the default
- * value, then pessimistic read locks are used.
+ * locking semantics default to `OPTIMISTIC`.
+ * * See
+ * [Concurrency
+ * control](https://cloud.google.com/spanner/docs/concurrency-control)
+ * for more details.
*
*
* READ_LOCK_MODE_UNSPECIFIED = 0;
@@ -423,10 +421,17 @@ public enum ReadLockMode implements com.google.protobuf.ProtocolMessageEnum {
*
* Pessimistic lock mode.
*
- * Read locks are acquired immediately on read.
- * Semantics described only applies to
+ * Lock acquisition behavior depends on the isolation level in use. In
* [SERIALIZABLE][google.spanner.v1.TransactionOptions.IsolationLevel.SERIALIZABLE]
- * isolation.
+ * isolation, reads and writes acquire necessary locks during transaction
+ * statement execution. In
+ * [REPEATABLE_READ][google.spanner.v1.TransactionOptions.IsolationLevel.REPEATABLE_READ]
+ * isolation, reads that explicitly request to be locked and writes
+ * acquire locks.
+ * See
+ * [Concurrency
+ * control](https://cloud.google.com/spanner/docs/concurrency-control) for
+ * details on the types of locks acquired at each transaction step.
*
*
* PESSIMISTIC = 1;
@@ -438,12 +443,18 @@ public enum ReadLockMode implements com.google.protobuf.ProtocolMessageEnum {
*
* Optimistic lock mode.
*
- * Locks for reads within the transaction are not acquired on read.
- * Instead the locks are acquired on a commit to validate that
- * read/queried data has not changed since the transaction started.
- * Semantics described only applies to
+ * Lock acquisition behavior depends on the isolation level in use. In
+ * both
* [SERIALIZABLE][google.spanner.v1.TransactionOptions.IsolationLevel.SERIALIZABLE]
- * isolation.
+ * and
+ * [REPEATABLE_READ][google.spanner.v1.TransactionOptions.IsolationLevel.REPEATABLE_READ]
+ * isolation, reads and writes do not acquire locks during transaction
+ * statement execution.
+ * See
+ * [Concurrency
+ * control](https://cloud.google.com/spanner/docs/concurrency-control) for
+ * details on how the guarantees of each isolation level are provided at
+ * commit time.
*
*
* OPTIMISTIC = 2;
@@ -469,17 +480,15 @@ public enum ReadLockMode implements com.google.protobuf.ProtocolMessageEnum {
* Default value.
*
* * If isolation level is
+ * [SERIALIZABLE][google.spanner.v1.TransactionOptions.IsolationLevel.SERIALIZABLE],
+ * locking semantics default to `PESSIMISTIC`.
+ * * If isolation level is
* [REPEATABLE_READ][google.spanner.v1.TransactionOptions.IsolationLevel.REPEATABLE_READ],
- * then it is an error to specify `read_lock_mode`. Locking semantics
- * default to `OPTIMISTIC`. No validation checks are done for reads,
- * except to validate that the data that was served at the snapshot time
- * is unchanged at commit time in the following cases:
- * 1. reads done as part of queries that use `SELECT FOR UPDATE`
- * 2. reads done as part of statements with a `LOCK_SCANNED_RANGES`
- * hint
- * 3. reads done as part of DML statements
- * * At all other isolation levels, if `read_lock_mode` is the default
- * value, then pessimistic read locks are used.
+ * locking semantics default to `OPTIMISTIC`.
+ * * See
+ * [Concurrency
+ * control](https://cloud.google.com/spanner/docs/concurrency-control)
+ * for more details.
*
*
* READ_LOCK_MODE_UNSPECIFIED = 0;
@@ -492,10 +501,17 @@ public enum ReadLockMode implements com.google.protobuf.ProtocolMessageEnum {
*
* Pessimistic lock mode.
*
- * Read locks are acquired immediately on read.
- * Semantics described only applies to
+ * Lock acquisition behavior depends on the isolation level in use. In
* [SERIALIZABLE][google.spanner.v1.TransactionOptions.IsolationLevel.SERIALIZABLE]
- * isolation.
+ * isolation, reads and writes acquire necessary locks during transaction
+ * statement execution. In
+ * [REPEATABLE_READ][google.spanner.v1.TransactionOptions.IsolationLevel.REPEATABLE_READ]
+ * isolation, reads that explicitly request to be locked and writes
+ * acquire locks.
+ * See
+ * [Concurrency
+ * control](https://cloud.google.com/spanner/docs/concurrency-control) for
+ * details on the types of locks acquired at each transaction step.
*
*
* PESSIMISTIC = 1;
@@ -508,12 +524,18 @@ public enum ReadLockMode implements com.google.protobuf.ProtocolMessageEnum {
*
* Optimistic lock mode.
*
- * Locks for reads within the transaction are not acquired on read.
- * Instead the locks are acquired on a commit to validate that
- * read/queried data has not changed since the transaction started.
- * Semantics described only applies to
+ * Lock acquisition behavior depends on the isolation level in use. In
+ * both
* [SERIALIZABLE][google.spanner.v1.TransactionOptions.IsolationLevel.SERIALIZABLE]
- * isolation.
+ * and
+ * [REPEATABLE_READ][google.spanner.v1.TransactionOptions.IsolationLevel.REPEATABLE_READ]
+ * isolation, reads and writes do not acquire locks during transaction
+ * statement execution.
+ * See
+ * [Concurrency
+ * control](https://cloud.google.com/spanner/docs/concurrency-control) for
+ * details on how the guarantees of each isolation level are provided at
+ * commit time.
*
*
* OPTIMISTIC = 2;
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionOrBuilder.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionOrBuilder.java
index a7f74137f67..53adafa6a3a 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionOrBuilder.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionOrBuilder.java
@@ -152,4 +152,62 @@ public interface TransactionOrBuilder
* .google.spanner.v1.MultiplexedSessionPrecommitToken precommit_token = 3;
*/
com.google.spanner.v1.MultiplexedSessionPrecommitTokenOrBuilder getPrecommitTokenOrBuilder();
+
+ /**
+ *
+ *
+ *
+ * Optional. A cache update expresses a set of changes the client should
+ * incorporate into its location cache. The client should discard the changes
+ * if they are older than the data it already has. This data can be obtained
+ * in response to requests that included a `RoutingHint` field, but may also
+ * be obtained by explicit location-fetching RPCs which may be added in the
+ * future.
+ *
+ *
+ *
+ * .google.spanner.v1.CacheUpdate cache_update = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return Whether the cacheUpdate field is set.
+ */
+ boolean hasCacheUpdate();
+
+ /**
+ *
+ *
+ *
+ * Optional. A cache update expresses a set of changes the client should
+ * incorporate into its location cache. The client should discard the changes
+ * if they are older than the data it already has. This data can be obtained
+ * in response to requests that included a `RoutingHint` field, but may also
+ * be obtained by explicit location-fetching RPCs which may be added in the
+ * future.
+ *
+ *
+ *
+ * .google.spanner.v1.CacheUpdate cache_update = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The cacheUpdate.
+ */
+ com.google.spanner.v1.CacheUpdate getCacheUpdate();
+
+ /**
+ *
+ *
+ *
+ * Optional. A cache update expresses a set of changes the client should
+ * incorporate into its location cache. The client should discard the changes
+ * if they are older than the data it already has. This data can be obtained
+ * in response to requests that included a `RoutingHint` field, but may also
+ * be obtained by explicit location-fetching RPCs which may be added in the
+ * future.
+ *
+ *
+ *
+ * .google.spanner.v1.CacheUpdate cache_update = 5 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ com.google.spanner.v1.CacheUpdateOrBuilder getCacheUpdateOrBuilder();
}
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionProto.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionProto.java
index e0179d3c398..bbfedb2eb48 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionProto.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionProto.java
@@ -80,48 +80,50 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"\n#google/spanner/v1/transaction.proto\022\021g"
+ "oogle.spanner.v1\032\037google/api/field_behav"
+ "ior.proto\032\036google/protobuf/duration.prot"
- + "o\032\037google/protobuf/timestamp.proto\"\367\007\n\022T"
- + "ransactionOptions\022E\n\nread_write\030\001 \001(\0132/."
- + "google.spanner.v1.TransactionOptions.Rea"
- + "dWriteH\000\022O\n\017partitioned_dml\030\003 \001(\01324.goog"
- + "le.spanner.v1.TransactionOptions.Partiti"
- + "onedDmlH\000\022C\n\tread_only\030\002 \001(\0132..google.sp"
- + "anner.v1.TransactionOptions.ReadOnlyH\000\022\'"
- + "\n\037exclude_txn_from_change_streams\030\005 \001(\010\022"
- + "M\n\017isolation_level\030\006 \001(\01624.google.spanne"
- + "r.v1.TransactionOptions.IsolationLevel\032\354"
- + "\001\n\tReadWrite\022T\n\016read_lock_mode\030\001 \001(\0162<.g"
- + "oogle.spanner.v1.TransactionOptions.Read"
- + "Write.ReadLockMode\0228\n+multiplexed_sessio"
- + "n_previous_transaction_id\030\002 \001(\014B\003\340A\001\"O\n\014"
- + "ReadLockMode\022\036\n\032READ_LOCK_MODE_UNSPECIFI"
- + "ED\020\000\022\017\n\013PESSIMISTIC\020\001\022\016\n\nOPTIMISTIC\020\002\032\020\n"
- + "\016PartitionedDml\032\250\002\n\010ReadOnly\022\020\n\006strong\030\001"
- + " \001(\010H\000\0228\n\022min_read_timestamp\030\002 \001(\0132\032.goo"
- + "gle.protobuf.TimestampH\000\0222\n\rmax_stalenes"
- + "s\030\003 \001(\0132\031.google.protobuf.DurationH\000\0224\n\016"
- + "read_timestamp\030\004 \001(\0132\032.google.protobuf.T"
- + "imestampH\000\0224\n\017exact_staleness\030\005 \001(\0132\031.go"
- + "ogle.protobuf.DurationH\000\022\035\n\025return_read_"
- + "timestamp\030\006 \001(\010B\021\n\017timestamp_bound\"X\n\016Is"
- + "olationLevel\022\037\n\033ISOLATION_LEVEL_UNSPECIF"
- + "IED\020\000\022\020\n\014SERIALIZABLE\020\001\022\023\n\017REPEATABLE_RE"
- + "AD\020\002B\006\n\004mode\"\233\001\n\013Transaction\022\n\n\002id\030\001 \001(\014"
- + "\0222\n\016read_timestamp\030\002 \001(\0132\032.google.protob"
- + "uf.Timestamp\022L\n\017precommit_token\030\003 \001(\01323."
- + "google.spanner.v1.MultiplexedSessionPrec"
- + "ommitToken\"\244\001\n\023TransactionSelector\022;\n\nsi"
- + "ngle_use\030\001 \001(\0132%.google.spanner.v1.Trans"
- + "actionOptionsH\000\022\014\n\002id\030\002 \001(\014H\000\0226\n\005begin\030\003"
- + " \001(\0132%.google.spanner.v1.TransactionOpti"
- + "onsH\000B\n\n\010selector\"L\n MultiplexedSessionP"
- + "recommitToken\022\027\n\017precommit_token\030\001 \001(\014\022\017"
- + "\n\007seq_num\030\002 \001(\005B\263\001\n\025com.google.spanner.v"
- + "1B\020TransactionProtoP\001Z5cloud.google.com/"
- + "go/spanner/apiv1/spannerpb;spannerpb\252\002\027G"
- + "oogle.Cloud.Spanner.V1\312\002\027Google\\Cloud\\Sp"
- + "anner\\V1\352\002\032Google::Cloud::Spanner::V1b\006p"
- + "roto3"
+ + "o\032\037google/protobuf/timestamp.proto\032 goog"
+ + "le/spanner/v1/location.proto\"\367\007\n\022Transac"
+ + "tionOptions\022E\n\nread_write\030\001 \001(\0132/.google"
+ + ".spanner.v1.TransactionOptions.ReadWrite"
+ + "H\000\022O\n\017partitioned_dml\030\003 \001(\01324.google.spa"
+ + "nner.v1.TransactionOptions.PartitionedDm"
+ + "lH\000\022C\n\tread_only\030\002 \001(\0132..google.spanner."
+ + "v1.TransactionOptions.ReadOnlyH\000\022\'\n\037excl"
+ + "ude_txn_from_change_streams\030\005 \001(\010\022M\n\017iso"
+ + "lation_level\030\006 \001(\01624.google.spanner.v1.T"
+ + "ransactionOptions.IsolationLevel\032\354\001\n\tRea"
+ + "dWrite\022T\n\016read_lock_mode\030\001 \001(\0162<.google."
+ + "spanner.v1.TransactionOptions.ReadWrite."
+ + "ReadLockMode\0228\n+multiplexed_session_prev"
+ + "ious_transaction_id\030\002 \001(\014B\003\340A\001\"O\n\014ReadLo"
+ + "ckMode\022\036\n\032READ_LOCK_MODE_UNSPECIFIED\020\000\022\017"
+ + "\n\013PESSIMISTIC\020\001\022\016\n\nOPTIMISTIC\020\002\032\020\n\016Parti"
+ + "tionedDml\032\250\002\n\010ReadOnly\022\020\n\006strong\030\001 \001(\010H\000"
+ + "\0228\n\022min_read_timestamp\030\002 \001(\0132\032.google.pr"
+ + "otobuf.TimestampH\000\0222\n\rmax_staleness\030\003 \001("
+ + "\0132\031.google.protobuf.DurationH\000\0224\n\016read_t"
+ + "imestamp\030\004 \001(\0132\032.google.protobuf.Timesta"
+ + "mpH\000\0224\n\017exact_staleness\030\005 \001(\0132\031.google.p"
+ + "rotobuf.DurationH\000\022\035\n\025return_read_timest"
+ + "amp\030\006 \001(\010B\021\n\017timestamp_bound\"X\n\016Isolatio"
+ + "nLevel\022\037\n\033ISOLATION_LEVEL_UNSPECIFIED\020\000\022"
+ + "\020\n\014SERIALIZABLE\020\001\022\023\n\017REPEATABLE_READ\020\002B\006"
+ + "\n\004mode\"\326\001\n\013Transaction\022\n\n\002id\030\001 \001(\014\0222\n\016re"
+ + "ad_timestamp\030\002 \001(\0132\032.google.protobuf.Tim"
+ + "estamp\022L\n\017precommit_token\030\003 \001(\01323.google"
+ + ".spanner.v1.MultiplexedSessionPrecommitT"
+ + "oken\0229\n\014cache_update\030\005 \001(\0132\036.google.span"
+ + "ner.v1.CacheUpdateB\003\340A\001\"\244\001\n\023TransactionS"
+ + "elector\022;\n\nsingle_use\030\001 \001(\0132%.google.spa"
+ + "nner.v1.TransactionOptionsH\000\022\014\n\002id\030\002 \001(\014"
+ + "H\000\0226\n\005begin\030\003 \001(\0132%.google.spanner.v1.Tr"
+ + "ansactionOptionsH\000B\n\n\010selector\"L\n Multip"
+ + "lexedSessionPrecommitToken\022\027\n\017precommit_"
+ + "token\030\001 \001(\014\022\017\n\007seq_num\030\002 \001(\005B\263\001\n\025com.goo"
+ + "gle.spanner.v1B\020TransactionProtoP\001Z5clou"
+ + "d.google.com/go/spanner/apiv1/spannerpb;"
+ + "spannerpb\252\002\027Google.Cloud.Spanner.V1\312\002\027Go"
+ + "ogle\\Cloud\\Spanner\\V1\352\002\032Google::Cloud::S"
+ + "panner::V1b\006proto3"
};
descriptor =
com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
@@ -130,6 +132,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
com.google.api.FieldBehaviorProto.getDescriptor(),
com.google.protobuf.DurationProto.getDescriptor(),
com.google.protobuf.TimestampProto.getDescriptor(),
+ com.google.spanner.v1.LocationProto.getDescriptor(),
});
internal_static_google_spanner_v1_TransactionOptions_descriptor =
getDescriptor().getMessageType(0);
@@ -177,7 +180,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_spanner_v1_Transaction_descriptor,
new java.lang.String[] {
- "Id", "ReadTimestamp", "PrecommitToken",
+ "Id", "ReadTimestamp", "PrecommitToken", "CacheUpdate",
});
internal_static_google_spanner_v1_TransactionSelector_descriptor =
getDescriptor().getMessageType(2);
@@ -199,6 +202,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
com.google.api.FieldBehaviorProto.getDescriptor();
com.google.protobuf.DurationProto.getDescriptor();
com.google.protobuf.TimestampProto.getDescriptor();
+ com.google.spanner.v1.LocationProto.getDescriptor();
com.google.protobuf.ExtensionRegistry registry =
com.google.protobuf.ExtensionRegistry.newInstance();
registry.add(com.google.api.FieldBehaviorProto.fieldBehavior);
diff --git a/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/commit_response.proto b/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/commit_response.proto
index 6e445912202..20d2850bb64 100644
--- a/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/commit_response.proto
+++ b/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/commit_response.proto
@@ -16,7 +16,9 @@ syntax = "proto3";
package google.spanner.v1;
+import "google/api/field_behavior.proto";
import "google/protobuf/timestamp.proto";
+import "google/spanner/v1/location.proto";
import "google/spanner/v1/transaction.proto";
option csharp_namespace = "Google.Cloud.Spanner.V1";
@@ -61,4 +63,12 @@ message CommitResponse {
// timestamp at which all reads in the transaction ran. This timestamp is
// never returned.
google.protobuf.Timestamp snapshot_timestamp = 5;
+
+ // Optional. A cache update expresses a set of changes the client should
+ // incorporate into its location cache. The client should discard the changes
+ // if they are older than the data it already has. This data can be obtained
+ // in response to requests that included a `RoutingHint` field, but may also
+ // be obtained by explicit location-fetching RPCs which may be added in the
+ // future.
+ CacheUpdate cache_update = 6 [(google.api.field_behavior) = OPTIONAL];
}
diff --git a/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/spanner.proto b/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/spanner.proto
index 525cc2ba47a..a6796c9f187 100644
--- a/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/spanner.proto
+++ b/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/spanner.proto
@@ -827,7 +827,7 @@ message ExecuteSqlRequest {
// be assumed until a subsequent `Commit` call completes successfully.
bool last_statement = 17 [(google.api.field_behavior) = OPTIONAL];
- // Optional. If present, it makes the Spanner requests location-aware.
+ // Optional. Makes the Spanner requests location-aware if present.
//
// It gives the server hints that can be used to route the request
// to an appropriate server, potentially significantly decreasing latency and
@@ -1268,7 +1268,7 @@ message ReadRequest {
// transactions.
LockHint lock_hint = 17 [(google.api.field_behavior) = OPTIONAL];
- // Optional. If present, it makes the Spanner requests location-aware.
+ // Optional. Makes the Spanner requests location-aware if present.
//
// It gives the server hints that can be used to route the request
// to an appropriate server, potentially significantly decreasing latency and
@@ -1301,6 +1301,14 @@ message BeginTransactionRequest {
// randomly select one of the mutations from the mutation set and send it as a
// part of this request.
Mutation mutation_key = 4 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. Makes the Spanner requests location-aware if present.
+ //
+ // It gives the server hints that can be used to route the request
+ // to an appropriate server, potentially significantly decreasing latency and
+ // improving throughput. To achieve improved performance, most fields must be
+ // filled in with accurate values.
+ RoutingHint routing_hint = 5 [(google.api.field_behavior) = OPTIONAL];
}
// The request for [Commit][google.spanner.v1.Spanner.Commit].
@@ -1355,6 +1363,14 @@ message CommitRequest {
// results in a `FailedPrecondition` error.
MultiplexedSessionPrecommitToken precommit_token = 9
[(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. Makes the Spanner requests location-aware if present.
+ //
+ // It gives the server hints that can be used to route the request
+ // to an appropriate server, potentially significantly decreasing latency and
+ // improving throughput. To achieve improved performance, most fields must be
+ // filled in with accurate values.
+ RoutingHint routing_hint = 10 [(google.api.field_behavior) = OPTIONAL];
}
// The request for [Rollback][google.spanner.v1.Spanner.Rollback].
diff --git a/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/transaction.proto b/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/transaction.proto
index dfdf3b11a1b..f7cbccae8b7 100644
--- a/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/transaction.proto
+++ b/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/transaction.proto
@@ -19,6 +19,7 @@ package google.spanner.v1;
import "google/api/field_behavior.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/timestamp.proto";
+import "google/spanner/v1/location.proto";
option csharp_namespace = "Google.Cloud.Spanner.V1";
option go_package = "cloud.google.com/go/spanner/apiv1/spannerpb;spannerpb";
@@ -39,35 +40,46 @@ message TransactionOptions {
// Default value.
//
// * If isolation level is
+ // [SERIALIZABLE][google.spanner.v1.TransactionOptions.IsolationLevel.SERIALIZABLE],
+ // locking semantics default to `PESSIMISTIC`.
+ // * If isolation level is
// [REPEATABLE_READ][google.spanner.v1.TransactionOptions.IsolationLevel.REPEATABLE_READ],
- // then it is an error to specify `read_lock_mode`. Locking semantics
- // default to `OPTIMISTIC`. No validation checks are done for reads,
- // except to validate that the data that was served at the snapshot time
- // is unchanged at commit time in the following cases:
- // 1. reads done as part of queries that use `SELECT FOR UPDATE`
- // 2. reads done as part of statements with a `LOCK_SCANNED_RANGES`
- // hint
- // 3. reads done as part of DML statements
- // * At all other isolation levels, if `read_lock_mode` is the default
- // value, then pessimistic read locks are used.
+ // locking semantics default to `OPTIMISTIC`.
+ // * See
+ // [Concurrency
+ // control](https://cloud.google.com/spanner/docs/concurrency-control)
+ // for more details.
READ_LOCK_MODE_UNSPECIFIED = 0;
// Pessimistic lock mode.
//
- // Read locks are acquired immediately on read.
- // Semantics described only applies to
+ // Lock acquisition behavior depends on the isolation level in use. In
// [SERIALIZABLE][google.spanner.v1.TransactionOptions.IsolationLevel.SERIALIZABLE]
- // isolation.
+ // isolation, reads and writes acquire necessary locks during transaction
+ // statement execution. In
+ // [REPEATABLE_READ][google.spanner.v1.TransactionOptions.IsolationLevel.REPEATABLE_READ]
+ // isolation, reads that explicitly request to be locked and writes
+ // acquire locks.
+ // See
+ // [Concurrency
+ // control](https://cloud.google.com/spanner/docs/concurrency-control) for
+ // details on the types of locks acquired at each transaction step.
PESSIMISTIC = 1;
// Optimistic lock mode.
//
- // Locks for reads within the transaction are not acquired on read.
- // Instead the locks are acquired on a commit to validate that
- // read/queried data has not changed since the transaction started.
- // Semantics described only applies to
+ // Lock acquisition behavior depends on the isolation level in use. In
+ // both
// [SERIALIZABLE][google.spanner.v1.TransactionOptions.IsolationLevel.SERIALIZABLE]
- // isolation.
+ // and
+ // [REPEATABLE_READ][google.spanner.v1.TransactionOptions.IsolationLevel.REPEATABLE_READ]
+ // isolation, reads and writes do not acquire locks during transaction
+ // statement execution.
+ // See
+ // [Concurrency
+ // control](https://cloud.google.com/spanner/docs/concurrency-control) for
+ // details on how the guarantees of each isolation level are provided at
+ // commit time.
OPTIMISTIC = 2;
}
@@ -264,6 +276,14 @@ message Transaction {
// attempt should be passed to the [Commit][google.spanner.v1.Spanner.Commit]
// request for this transaction.
MultiplexedSessionPrecommitToken precommit_token = 3;
+
+ // Optional. A cache update expresses a set of changes the client should
+ // incorporate into its location cache. The client should discard the changes
+ // if they are older than the data it already has. This data can be obtained
+ // in response to requests that included a `RoutingHint` field, but may also
+ // be obtained by explicit location-fetching RPCs which may be added in the
+ // future.
+ CacheUpdate cache_update = 5 [(google.api.field_behavior) = OPTIONAL];
}
// This message is used to select the transaction in which a