## Description of Changes
This PR primarily affects the `bindings-macro` and `schema` crates to
review:
### Core changes
1. Replaces the `name` macro with `accessor` for **Tables, Views,
Procedures, and Reducers** in Rust modules.
2. Extends `RawModuleDefV10` with a new section for:
* case conversion policies
* explicit names
New sections are not validated in this PR so not functional.
3. Updates index behavior:
* Index names are now always **system-generated** for clients. Which
will be fixed in follow-up PR when we start validating RawModuleDef with
explicit names.
* The `accessor` name for an index is used only inside the module.
## Breaking changes (API/ABI)
1. **Rust modules**
* The `name` macro must be replaced with `accessor`.
2. **Client bindings (all languages)**
* Index names are now system-generated instead of using explicitly
provided names.
**Complexity:** 3
A follow-up PR will reintroduce explicit names with support for case
conversion.
---------
Co-authored-by: rekhoff <r.ekhoff@clockworklabs.io>
Co-authored-by: clockwork-labs-bot <clockwork-labs-bot@users.noreply.github.com>
Co-authored-by: clockwork-labs-bot <bot@clockworklabs.com>
benchmarks Rust Modules
This provides the various modules used for benchmarking SpacetimeDB, with the crate
bench.
Note: Also mirrored as a C# version at
modules/benchmarks-cs, so must be kept in sync.
Benchmarks
circles.rs
Implements a smaller variation of the Blackholio game.
Circles are spawned and then queried to evaluate CROSS JOIN performance.
ia_loop.rs
Implements a simplified version of the ia loop from BitCraft.
This benchmark spawns a large number of entities in a world and queries them to measure UPDATE performance, running
a single loop of the enemy AI.
synthetic.rs
Contains various synthetic benchmarks designed to test database performance. These benchmarks involve tables with
different type combinations and evaluate INSERT, UPDATE, DELETE, and SELECT operations in both simple and bulk
scenarios.
How to Run
For detailed instructions on running the benchmarks, refer to the benchmarks README.