You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implement Value and Key for the NonZero integer types, NonZeroU8 to NonZeroU128 and NonZeroI8 to NonZeroI128.
Add Value::NICHE, an optional byte string that a type never encodes to. When a type declares
one, Option of that type encodes None as it, in place of a tag byte. Adding a niche to a type
changes the encoding of Option of it, and its type name with it, so the two are not equivalent
types: a table that stores Option of the type from before it declared the niche fails to open
with TableTypeMismatch instead of being misread, and can be read through a copy of the type
that declares no niche.
Stabilize ReadableTable::lower_bound() and ReadableTable::upper_bound(), which return a read-only Cursor, modeled on the standard library's BTreeMap cursors.
Stabilize Table::lower_bound_mut() and Table::upper_bound_mut(), which return a CursorMut
modeled on the standard library's BTreeMap cursors. Inserting sorted data through insert_before() can be around 3x faster than insert().
Bug fixes
Fix a bug where check_integrity() could report that it repaired corruption, after a transaction
that grew the file size was aborted.
Fix Database::create() repairing the database it had just created, which failed with RepairAborted under a repair callback that aborts.
Fix unbounded memory growth in the page cache under write workloads, when the cache never
reached its configured size limit.
Fix Durability::None commits being lost on a clean close, after a panic was caught inside
an earlier write transaction.
Fix compact() leaving free regions at the end of the file, when the compaction emptied more
of them than it made commits.
Fix compact() waiting forever when the caller holds a write transaction. It fails with CompactionError::TransactionInProgress, as it does for a read transaction.