Skip to content

Conversation

@bhshkh
Copy link
Owner

@bhshkh bhshkh commented Aug 30, 2024

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

datastore: datastore.put does not allow any non-empty value in the slice if the first value is empty with omitempty option

1 participant