| Index: third_party/protobuf/src/google/protobuf/field_mask.proto
|
| diff --git a/third_party/protobuf/src/google/protobuf/field_mask.proto b/third_party/protobuf/src/google/protobuf/field_mask.proto
|
| index 6af6dbe89805963c66ae99be1b3affd0dcec8135..c68d247c8a478b56567590ff62c6fea8c3bac2cc 100644
|
| --- a/third_party/protobuf/src/google/protobuf/field_mask.proto
|
| +++ b/third_party/protobuf/src/google/protobuf/field_mask.proto
|
| @@ -37,7 +37,7 @@ option java_package = "com.google.protobuf";
|
| option java_outer_classname = "FieldMaskProto";
|
| option java_multiple_files = true;
|
| option objc_class_prefix = "GPB";
|
| -option java_generate_equals_and_hash = true;
|
| +option go_package = "google.golang.org/genproto/protobuf/field_mask;field_mask";
|
|
|
| // `FieldMask` represents a set of symbolic field paths, for example:
|
| //
|
| @@ -82,7 +82,7 @@ option java_generate_equals_and_hash = true;
|
| // }
|
| //
|
| // A repeated field is not allowed except at the last position of a
|
| -// field mask.
|
| +// paths string.
|
| //
|
| // If a FieldMask object is not present in a get operation, the
|
| // operation applies to all fields (as if a FieldMask of all fields
|
| @@ -107,6 +107,58 @@ option java_generate_equals_and_hash = true;
|
| // describe the updated values, the API ignores the values of all
|
| // fields not covered by the mask.
|
| //
|
| +// If a repeated field is specified for an update operation, the existing
|
| +// repeated values in the target resource will be overwritten by the new values.
|
| +// Note that a repeated field is only allowed in the last position of a `paths`
|
| +// string.
|
| +//
|
| +// If a sub-message is specified in the last position of the field mask for an
|
| +// update operation, then the existing sub-message in the target resource is
|
| +// overwritten. Given the target message:
|
| +//
|
| +// f {
|
| +// b {
|
| +// d : 1
|
| +// x : 2
|
| +// }
|
| +// c : 1
|
| +// }
|
| +//
|
| +// And an update message:
|
| +//
|
| +// f {
|
| +// b {
|
| +// d : 10
|
| +// }
|
| +// }
|
| +//
|
| +// then if the field mask is:
|
| +//
|
| +// paths: "f.b"
|
| +//
|
| +// then the result will be:
|
| +//
|
| +// f {
|
| +// b {
|
| +// d : 10
|
| +// }
|
| +// c : 1
|
| +// }
|
| +//
|
| +// However, if the update mask was:
|
| +//
|
| +// paths: "f.b.d"
|
| +//
|
| +// then the result would be:
|
| +//
|
| +// f {
|
| +// b {
|
| +// d : 10
|
| +// x : 2
|
| +// }
|
| +// c : 1
|
| +// }
|
| +//
|
| // In order to reset a field's value to the default, the field must
|
| // be in the mask and set to the default value in the provided resource.
|
| // Hence, in order to reset all fields of a resource, provide a default
|
|
|