* make user tables private by default and define privacy via attribute
* switch to spacetimedb(table(public)) syntax
* accept codegen snap changes
* sdk: use public in define_tables!
* bindings-macro: adjust some doc comments
* sdk-test-connect-disconnect: make Connected/Disconnected public tables
* Make Public Private again
* Always send TransactionUpdate to the sender
This commit changes transaction update broadcast to always send an
update to the sender, even if the sender is not subscribed to any
data that was committed. In such case the transaction update is sent
with an empty database update.
* Remove debug printlns
* Update code after rebase
* Fix test
* Update crates/core/src/subscription/module_subscription_manager.rs
Co-authored-by: Mazdak Farrokhzad <twingoow@gmail.com>
Signed-off-by: Piotr Sarnacki <drogus@gmail.com>
* Extract sending message with error handing in module_subscription_manager
* Bring back a new line
* SDK test that the client is notified of a reducer it called
* cleanup subscription code a bit
* Fix merge problem
* Lint + fmt
* Fix test
---------
Signed-off-by: Piotr Sarnacki <drogus@gmail.com>
Co-authored-by: Mazdak Farrokhzad <twingoow@gmail.com>
Co-authored-by: Phoebe Goldman <phoebe@goldman-tribe.org>
With C# records - which are available since C# 9, so covers Unity requirements as well - we can use subclassing and pattern matching to get sum types that look a lot more like Rust tagged enums.
This is a breaking change but IMO worth it for the better API going forward.
* C#: rename DbEventArgs to ReducerContext
This is no longer an event type, so remove subclassing and rename to match the Rust API.
* Update ReducerContext argument name
- Refactor `bindings::query::delete_by_field` to require `FilterableValue`
and return `u32` count of deleted rows.
- Add `bindings::query::delete_by_unique_field`
with the previous behavior of `delete_by_field`,
i.e. requiring `UniqueValue` and returning `bool` with `true = deleted`.
This is implemented in terms of `delete_by_field`.
- Macro-generated unique filter funcs call `delete_by_unique_field`
rather than `delete_by_field`.
- The table macro now generates non-unique delete functions
alongside the existing non-unique filter functions
for non-unique fields with primitive types.
- Add uses of `::delete_by_{field}` for both unique and non-unique columns
to the `rust-wasm-test` module.
Note that this PR does not include any host-side changes;
the diff is localized to the `bindings` and `bindings-macro` crates.
As usual, NuGet / MSBuild behaving differently for local projects vs published ones causes build issues that are not revealed by testing...
This is published to NuGet now and verified to work on an empty project.
Also changed the way `SpacetimeDB.Runtime.{props,targets}` are referenced locally by test projects by moving them to `Directory.Build.{props,targets}` at the top level of `modules/` directory. This should simulate behaviour of published NuGet packages a bit more closely - in particular, I verified that it can reproduce the bug in question before the fix, while the previous `<Import />` approach succeeded regardless - and also makes it easier to share the same configs between multiple projects.
* Refactoring bootstrapping and adding full support for constraints & multi-column indexes
* Removed deleted code and add some comments
* Add comment for Constraints
* Update crates/core/src/db/datastore/locking_tx_datastore/mod.rs
Co-authored-by: Mazdak Farrokhzad <twingoow@gmail.com>
Signed-off-by: Mario Montoya <mamcx@elmalabarista.com>
* Update crates/core/src/db/datastore/locking_tx_datastore/mod.rs
Co-authored-by: Mazdak Farrokhzad <twingoow@gmail.com>
Signed-off-by: Mario Montoya <mamcx@elmalabarista.com>
* Addressing some PR comments & remove cloning
* Adding details for when fail to decode rows in replay
* Apply Kim's fix for replay bug
* Addressing some PR comments
* Merge
* Fix conflicts
* Fix conflicts
* Fix test
* Fix generation of code for csharp & typescript, now it generate FilterBy for all columns
* Fix for index generation
* Fixing C# index generation
* Merge
* Fix compilation on csharp bindings
---------
Signed-off-by: Mario Montoya <mamcx@elmalabarista.com>
Co-authored-by: Mazdak Farrokhzad <twingoow@gmail.com>
Co-authored-by: John Detter <no-reply@boppygames.gg>
Added multi column index usage to the rust-wasm-test module
This also updates integration test.
The number of lines in the output changes as there is 1 additional
line corresponding to the new table.