This issue tracks reimplementation of the work from stale PR #1848, which is being closed because it is too out of date to merge directly.
Original PR: https://github.com/clockworklabs/SpacetimeDB/pull/1848
Original author: @lcodes
Original branch: `jeremie/btree-index-bounds-cs`
Base branch: `master`
## Original PR summary
# Description of Changes
Adds support for multi-column btree index filtering in the C# client
- codegen emitting Filter() overloads in the index handles
- codegen emitting BTree storage and comparison operators
- runtime changes to make Address and Identity comparable
API and ABI breaking changes
No breaks.
Expected complexity level and risk
Most complexity is in the codegen, the runtime behavior is straightforward; a SortedSet<> per btree with a comparator matching its key columns, and Filter() methods querying that sorted set with min/max values derived from the table row type.
Testing
## Follow-up
- Reimplement this change in a fresh PR against current `master`.
- Carry forward any still-relevant context from the original PR discussion and review.
- Link the new implementation PR back to the original stale PR for historical context.
This issue tracks reimplementation of the work from stale PR #1848, which is being closed because it is too out of date to merge directly.
Adds support for multi-column btree index filtering in the C# client
API and ABI breaking changes
No breaks.
Expected complexity level and risk
Most complexity is in the codegen, the runtime behavior is straightforward; a SortedSet<> per btree with a comparator matching its key columns, and Filter() methods querying that sorted set with min/max values derived from the table row type.
Testing