Repository navigation
Releases: nitrite/nitrite-flutter
Release list
nitrite_support 3.3.1
- Rebuilt against nitrite 3.3.1. No functional change in this package.
nitrite_spatial 3.3.1
- Rebuilt against nitrite 3.3.1. No functional change in this package.
nitrite_hive_adapter 3.3.1
- Rebuilt against nitrite 3.3.1. No functional change in this package.
nitrite_generator 3.3.1
- Rebuilt against nitrite 3.3.1. No functional change in this package.
nitrite_bridge 3.3.1
- Rebuilt against nitrite 3.3.1. No functional change in this package.
nitrite 3.3.1
Ported from the corresponding fixes in nitrite-java, where each was found.
- A unique index no longer rejects a document over a key that document already holds.
addNitriteIdstreated any existing id under the key as a violation, so it counted the writer's own id against it. That bites a unique index over an array field with a repeated element -['a', 'b', 'a']visitsatwice, and the second visit collided with the entry the first had just written - and any path that reaches a key the document already owns, such as an index rebuild or a replayed write. Another document under the key is still a violation. (nitrite/nitrite-java#1295) - An update that leaves an indexed value unchanged no longer rewrites the index.
DocumentIndexWriter.updateIndexEntrytreated an index as affected whenever the update document carried the indexed field, and then removed and rewrote the entry. An update that writes the whole document back - the common upsert shape - carries every indexed field with its old value, so every index was rebuilt on every update for nothing. The old and new values are now compared withdeepEquals, and the index is left alone when they match. A dirty index is still rebuilt, since that has to happen on the first write regardless. (nitrite/nitrite-java#1297) getByIdhands out a copy instead of the stored instance, and returnsnullfor an unknown id without puttingnullthrough the processor chain. The in-memory store returns the veryDocumentit holds, so a caller'sdoc.put(...)on the result edited the store directly and bypassed every index.findalready copied throughProcessedDocumentStream. (nitrite/nitrite-java#1294)MapMetaDatacopies the stored name set instead of adopting it.document[tagMapMetaData]?.cast<String>()returns a view onto the set held in the catalog document, somapNames.add(name)edited the stored set in place - before the write that was supposed to record it, and past any rollback. It now takes a copy, so a write always stores a new set. (nitrite/nitrite-java#1296)
nitrite_support 3.3.0
Rebuilt against nitrite 3.3.0. No functional change in this package.
Requires nitrite ^3.3.0.
Full changelog: https://github.com/nitrite/nitrite-flutter/blob/main/packages/nitrite_support/CHANGELOG.md
nitrite_spatial 3.3.0
Rebuilt against nitrite 3.3.0. No functional change in this package.
Requires nitrite ^3.3.0.
Full changelog: https://github.com/nitrite/nitrite-flutter/blob/main/packages/nitrite_spatial/CHANGELOG.md
nitrite_hive_adapter 3.3.0
Paging reaches its offset over keys, not over decoded documents
BoxMap.valuesSkipping steps over the box's keys instead of reading and decoding every document in front of the page. The box keeps its keys in memory and its values on disk, so stepping a key is an iterator bump where reading one is a read and a decode — which was the whole cost of a late page. Paging 20k rows of ~1KB, 400 to a page, went from 27.6x the duration of one full scan to 1.0x.
The offset is advanced by hand rather than with Iterable.skip, which keeps calling moveNext for the whole count without looking at what it returns: Hive's skip-list iterator dereferences a null once past the end, so a page starting beyond the last key threw instead of coming back empty.
Requires
nitrite ^3.3.0, which is wherevaluesSkippingis introduced.
Full changelog: https://github.com/nitrite/nitrite-flutter/blob/main/packages/nitrite_hive_adapter/CHANGELOG.md
nitrite_generator 3.3.0
Rebuilt against nitrite 3.3.0. No functional change in this package.
Requires nitrite ^3.3.0.
Full changelog: https://github.com/nitrite/nitrite-flutter/blob/main/packages/nitrite_generator/CHANGELOG.md