mirror of
https://github.com/clockworklabs/SpacetimeDB.git
synced 2026-05-06 07:26:43 -04:00
e7294bf2e8
# Description of Changes Add support for btree indices where the keys are encoded byte strings for e.g., multi-column indices of no-unbounded-types (arrays and strings) that aren't floats. The main interesting stuff in this PR is in `bytes_key.rs` which defines `RangeCompatBytesKey`, a type that is derived from `BytesKey`, by converting little-endian encoded integers to big-endian. Signed integers are now also supported, but floats are not. `table_index/mod.rs` also includes a bunch of interesting stuff. # API and ABI breaking changes Technically this fixes pre-existing bugs in the handling of `Excluded` ranges for multi-col indices. # Expected complexity level and risk 2? # Testing - A proptest `order_in_bsatn_is_preserved` is now adjusted and enabled to exercise the ordering of `RangeCompatBytesKey`. - A proptest `btree_multi_col_range_scans_work` is added to check the behavior of range scans on multi-col indices. --------- Co-authored-by: joshua-spacetime <josh@clockworklabs.io>
⚠️ Internal Crate ⚠️
This crate is intended for internal use only. It is not stable and may change without notice.