Skip to content

Reimplement: Add btree index filters to the C# sdk with codegen #4788

@clockwork-labs-bot

Description

@clockwork-labs-bot

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    release-anyTo be landed in any release window

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions