Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: repeated structured property containing blob property with legacy_data (#817) #946

Merged
merged 7 commits into from
Feb 29, 2024

Conversation

ventice11o
Copy link
Contributor

This PR fixes the issue #817
In case of legacy data and repeated structured property, the value variable in BlobProperty._to_datastore is a list and not a bytes or _CompressedValue object thus the expression value.startswith(_ZLIB_COMPRESSION_MARKERS) fails. So,

  1. I simply converted it to list processing.
  2. Additional issue is related to the meanings. If _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.

@ventice11o ventice11o requested review from a team as code owners February 13, 2024 08:47
Copy link

google-cla bot commented Feb 13, 2024

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@product-auto-label product-auto-label bot added the api: datastore Issues related to the googleapis/python-ndb API. label Feb 13, 2024
@ventice11o ventice11o changed the title Fix inability to create repeated structured properties containing a blob property (or its heir JSON property) with legacy_data=True Fix: Fixed #817: Inability to create repeated structured properties containing a blob property with legacy_data=True Feb 13, 2024
@ventice11o ventice11o changed the title Fix: Fixed #817: Inability to create repeated structured properties containing a blob property with legacy_data=True fix: Inability to create repeated structured properties containing a blob property with legacy_data=True (googleapis#817) Feb 13, 2024
@ventice11o ventice11o changed the title fix: Inability to create repeated structured properties containing a blob property with legacy_data=True (googleapis#817) fix: repeated structured property containing blob property with legacy_data (googleapis#817) Feb 13, 2024
@ventice11o ventice11o changed the title fix: repeated structured property containing blob property with legacy_data (googleapis#817) fix: repeated structured property containing blob property with legacy_data (#817) Feb 13, 2024
@parthea parthea added kokoro:force-run Add this label to force Kokoro to re-run the tests. kokoro:run Add this label to force Kokoro to re-run the tests. owlbot:run Add this label to trigger the Owlbot post processor. labels Feb 13, 2024
@gcf-owl-bot gcf-owl-bot bot removed the owlbot:run Add this label to trigger the Owlbot post processor. label Feb 13, 2024
@yoshi-kokoro yoshi-kokoro removed kokoro:run Add this label to force Kokoro to re-run the tests. kokoro:force-run Add this label to force Kokoro to re-run the tests. labels Feb 13, 2024
@sorced-jim sorced-jim added kokoro:run Add this label to force Kokoro to re-run the tests. owlbot:run Add this label to trigger the Owlbot post processor. labels Feb 27, 2024
@gcf-owl-bot gcf-owl-bot bot removed the owlbot:run Add this label to trigger the Owlbot post processor. label Feb 27, 2024
@yoshi-kokoro yoshi-kokoro removed the kokoro:run Add this label to force Kokoro to re-run the tests. label Feb 27, 2024
@sorced-jim sorced-jim added kokoro:run Add this label to force Kokoro to re-run the tests. owlbot:run Add this label to trigger the Owlbot post processor. labels Feb 29, 2024
@gcf-owl-bot gcf-owl-bot bot removed the owlbot:run Add this label to trigger the Owlbot post processor. label Feb 29, 2024
@yoshi-kokoro yoshi-kokoro removed the kokoro:run Add this label to force Kokoro to re-run the tests. label Feb 29, 2024
@sorced-jim sorced-jim merged commit 455f860 into googleapis:main Feb 29, 2024
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api: datastore Issues related to the googleapis/python-ndb API.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants