fix(datastore): allow non-empty values in the slice #4
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes: googleapis#6983
Issue: googleapis#6983
Cause: While saving a slice of structs, we try to extract all the fields of struct from first element in array. Then, all the fields in next elements are compared to these fields. For e.g., if array is [{a: 1, b: 2, c: 3}, {a: 4, b: 5, c: 6}, {a: 1, b: 2, c: 3, d: 10}], the library will throw error that 'd' is unknown field in element 3 since it was not part of the first element.
In issue googleapis#6983, when first array element is empty, e.g. [{}, {a: 4, b: 5, c: 6}, {a: 1, b: 2, c: 3, d: 10}] or T{Values: []string{"", "s1", "s2"}}, all the later fields in later elements error out as they were not seen in first element.
Fix: Use the first non-empty element of the array as a standard for the fields in rest of the elements