aboutsummaryrefslogtreecommitdiffhomepage
path: root/third_party/googleapis/google/spanner/v1/mutation.proto
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/googleapis/google/spanner/v1/mutation.proto')
-rw-r--r--third_party/googleapis/google/spanner/v1/mutation.proto92
1 files changed, 92 insertions, 0 deletions
diff --git a/third_party/googleapis/google/spanner/v1/mutation.proto b/third_party/googleapis/google/spanner/v1/mutation.proto
new file mode 100644
index 0000000000..737af54ad1
--- /dev/null
+++ b/third_party/googleapis/google/spanner/v1/mutation.proto
@@ -0,0 +1,92 @@
+// Copyright 2017 Google Inc.
+//
+// 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
+//
+// http://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.
+
+syntax = "proto3";
+
+package google.spanner.v1;
+
+import "google/api/annotations.proto";
+import "google/protobuf/struct.proto";
+import "google/spanner/v1/keys.proto";
+
+option csharp_namespace = "Google.Cloud.Spanner.V1";
+option go_package = "google.golang.org/genproto/googleapis/spanner/v1;spanner";
+option java_multiple_files = true;
+option java_outer_classname = "MutationProto";
+option java_package = "com.google.spanner.v1";
+
+
+// A modification to one or more Cloud Spanner rows. Mutations can be
+// applied to a Cloud Spanner database by sending them in a
+// [Commit][google.spanner.v1.Spanner.Commit] call.
+message Mutation {
+ // Arguments to [insert][google.spanner.v1.Mutation.insert], [update][google.spanner.v1.Mutation.update], [insert_or_update][google.spanner.v1.Mutation.insert_or_update], and
+ // [replace][google.spanner.v1.Mutation.replace] operations.
+ message Write {
+ // Required. The table whose rows will be written.
+ string table = 1;
+
+ // The names of the columns in [table][google.spanner.v1.Mutation.Write.table] to be written.
+ //
+ // The list of columns must contain enough columns to allow
+ // Cloud Spanner to derive values for all primary key columns in the
+ // row(s) to be modified.
+ repeated string columns = 2;
+
+ // The values to be written. `values` can contain more than one
+ // list of values. If it does, then multiple rows are written, one
+ // for each entry in `values`. Each list in `values` must have
+ // exactly as many entries as there are entries in [columns][google.spanner.v1.Mutation.Write.columns]
+ // above. Sending multiple lists is equivalent to sending multiple
+ // `Mutation`s, each containing one `values` entry and repeating
+ // [table][google.spanner.v1.Mutation.Write.table] and [columns][google.spanner.v1.Mutation.Write.columns]. Individual values in each list are
+ // encoded as described [here][google.spanner.v1.TypeCode].
+ repeated google.protobuf.ListValue values = 3;
+ }
+
+ // Arguments to [delete][google.spanner.v1.Mutation.delete] operations.
+ message Delete {
+ // Required. The table whose rows will be deleted.
+ string table = 1;
+
+ // Required. The primary keys of the rows within [table][google.spanner.v1.Mutation.Delete.table] to delete.
+ KeySet key_set = 2;
+ }
+
+ // Required. The operation to perform.
+ oneof operation {
+ // Insert new rows in a table. If any of the rows already exist,
+ // the write or transaction fails with error `ALREADY_EXISTS`.
+ Write insert = 1;
+
+ // Update existing rows in a table. If any of the rows does not
+ // already exist, the transaction fails with error `NOT_FOUND`.
+ Write update = 2;
+
+ // Like [insert][google.spanner.v1.Mutation.insert], except that if the row already exists, then
+ // its column values are overwritten with the ones provided. Any
+ // column values not explicitly written are preserved.
+ Write insert_or_update = 3;
+
+ // Like [insert][google.spanner.v1.Mutation.insert], except that if the row already exists, it is
+ // deleted, and the column values provided are inserted
+ // instead. Unlike [insert_or_update][google.spanner.v1.Mutation.insert_or_update], this means any values not
+ // explicitly written become `NULL`.
+ Write replace = 4;
+
+ // Delete rows from a table. Succeeds whether or not the named
+ // rows were present.
+ Delete delete = 5;
+ }
+}