Add delete_by_{non-unique column} method to #[spacetimedb(table)] macro
#504
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Macro generation of
filter_by_columnon non-unique columns is currently broken; this will stay in draft until that's fixed, as it depends on the same code path.Description of Changes
bindings::query::delete_by_fieldto requireFilterableValueand returnu32count of deleted rows.bindings::query::delete_by_unique_fieldwith the previous behavior ofdelete_by_field, i.e. requiringUniqueValueand returningboolwith true = deleted. This is implemented in terms ofdelete_by_field.delete_by_unique_fieldrather thandelete_by_field.Note that this PR does not include any host-side changes; the diff is localized to the
bindingsandbindings-macrocrates.API and ABI
If the API is breaking, please state below what will break
This is an additive-only change to the module API, and leaves the module ABI untouched.
Expected complexity level and risk
2 - a reviewer should be prepared to verify that the host-side implementation of
delete_by_col_eqcorrectly handles the existence of multiple matching rows.How complicated do you think these changes are? Grade on a scale from 1 to 5,
where 1 is a trivial change, and 5 is a deep-reaching and complex change.
This complexity rating applies not only to the complexity apparent in the diff,
but also to its interactions with existing and future code.
If you answered more than a 2, explain what is complex about the PR,
and what other components it interacts with in potentially concerning ways.