redb 3.6.0 #7
reliktbk
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
redb3.6.0 is out. Two correctness fixes in the core, one of which was silently returning rows from the wrong tree, plus a rebuilt SQLite native extension.Highlights
Root-scoped tree queries no longer scan the whole scheme.
TreeQuery(root).WhereLeaves()and.WhereRoots()built their query from_id_schemealone and dropped the root, so a root-scoped query returned the leaves or roots of every tree in the scheme. If you store one tree per entity, that is a read crossing into another entity's data with no error to tell you. Fixed on all six provider paths, Free and Pro, with a regression test asserting isolation on every fixture.SumRedbAsync/AverageRedbAsyncno longer throw on an empty selection. ASUM/AVGover no matching rows isNULLin SQL, and the result was read throughJsonElement.GetDecimal, which throws onnull. Both now return0m, matchingEnumerable.Sumsemantics and theNULLguard thatMin/Maxalready had. The path only became reachable after 3.5.0 made base-field aggregations honour the filter.The SQLite native extension was rebuilt for every RID. Part of the tree fix lives in
redb_pvt.c, so a package carrying the old binaries would ship the fix on the managed side and leave the Free tier leaking across trees.win-x64,linux-x64andlinux-arm64are rebuilt from current source and verified byte-different from 3.5.0. macOS still ships no prebuilt extension and must be compiled from source.Upgrading
Drop-in for the managed packages. If you run the Free SQLite tier, take the new native binaries with it, otherwise you keep the tree defect. Linux and macOS builds compiled from source need recompiling per platform.
Why a minor and not a patch
redb.Routeadds public API in this release, and new surface cannot ship as a patch. The core packages carry only fixes, but the ecosystem moves on one number. This also re-unifies the line after 3.5.1, where Route, Tsak and Identity moved while the core stayed at 3.5.0. All four are on 3.6.0 again.Links
Questions, upgrade trouble, or something that behaves differently than you expected? Reply here or open a thread in Q&A. Anyone can post, no permissions needed.
All reactions