fix: repeated structured property containing blob property with legacy_data (#817) #946
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.
This PR fixes the issue #817
In case of legacy data and repeated structured property, the
value
variable inBlobProperty._to_datastore
is a list and not abytes
or_CompressedValue
object thus the expressionvalue.startswith(_ZLIB_COMPRESSION_MARKERS)
fails. So,_MEANING_COMPRESSED
is set for this list, it will work only if all the values of the list are not None, otherwise the RPC call fails with exception that the meaning 22 is not compatible with the bytes_value (which is None). So, in general case the meaning is not applicable to this combined value. Unless the back end supports such mixed values, or allows for meanings for None, we cannot use meanings. Technically, I can set the meaning if all the values of the list are non None, but in my opinion it is more consistent this way.All the tests have passed, including the new ones. Without the changes in PR, both tests fail with
AttributeError
.