Releases: ipfs/go-datastore
v0.5.0
What's Changed
- feat: add context to interfaces by @guseggert in #181
- Bump version to 0.5.0 by @guseggert in #183
New Contributors
- @guseggert made their first contribution in #181
Full Changelog: v0.4.6...v0.5.0
Release v0.4.2
Small patch release to avoid filtering by prefix when the prefix is equivalent to /.
Release v0.4.1
Improve test suite so we can test flatfs.
Release v0.4.0
This is a major release only because it includes some breaking changes to previously unspecified behavior in the query logic to align it with expectations.
Prefixes
Prefixes in queries will now be cleaned (you may need to update your datastores for this).
Additionally, querying with a prefix /foo will now:
- Match anything under
/foo(including/foo/bar, etc.). - Not match
/foo. - Not match
/foobar.
This is what users want 90% of the time. Previously, one had to use the prefix /foo/ to mean "anything strictly under /foo. However, due to how key cleaning works, turning /foo/ into a datastore key would result in /foo (which included /foo and /foobar).
Mounts
Put: Given mounts at /foo and / in a mounted datastore, puts to /foo will now go in the / datastore, not /foo. Previously, puts to /foo would been written to / in the child datastore which isn't a valid key in many datastores.
Query: Previously, querying for the prefix /foo/ on a datastore with mounts /foo and / would search both datastores. However, keys starting with /foo living in / shouldn't be visible when another datastore is mounted at /foo.
Documentation
The behavior and edge cases of datastores is now better documented (and tested).
v0.3.1
Merge pull request #142 from ipfs/fix/logds-async LogDatastore fulfills the Datastore interface again
v0.2.0
Queries can now pass ReturnSizes to ask the datastore to return sizes of values. Useful when used in conjunction with KeysOnly to retrieve sizes without returning the values.
If a datastore does not support returning sizes, it should return -1.
WARNING: If you intend to use this feature, make sure to upgrade your datastore implementations at the same time. Otherwise, they'll silently return 0 for sizes.