-
Notifications
You must be signed in to change notification settings - Fork 680
2.0: [Rust] Remove RLS bindings [Not to merge] #4135
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: 2.0-breaking-changes
Are you sure you want to change the base?
Conversation
…ext (#4101) # Description of Changes Makes the `sender` field on `ViewContext` private and exposes a `sender()` method. Does the same for `ReducerContext` and `ProcedureContext`. The purpose of this change: So that the host can determine if/when a view invokes or reads the `sender`. Currently, because `sender` is a field, the host assumes that it is always read. This means views must be materialized per client, even if the view doesn't actually depend on `sender`, resulting in data duplication. The initial solution for this problem was `AnonymousViewContext` which doesn't have a `sender` field. The better solution is to make `sender` a method so that it can call into the host and record when it's actually invoked. Note, this patch only updates the module API, so the current implementation does not change. `ViewContext` views are still duplicated across clients. Changing this requires a new host syscall and for `sender()` to invoke that syscall. This however is backwards compatible and can be done anytime after the module APIs for the other languages (C#, TypeScript, C++) are updated. Also note that `ReducerContext` and `ProcedureContext` were updated purely for consistency. There are currently no plans to track reads of `sender` in these contexts. # API and ABI breaking changes Breaks the rust module api. # Expected complexity level and risk 1 # Testing N/A
40994e4 to
273d2a9
Compare
273d2a9 to
a4cf1e9
Compare
gefjon
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's... not really what deprecation is. This PR is just removing RLS. Deprecation would involve leaving the functionality in place, but with a warning that it should not be used and will be removed in the future.
That's not to say that we should deprecate RLS, we should definitely just remove it in 2.0 modules, 'cause the migration to views with the typed query builder is easy. Just, please change the PR title to "Remove RLS interface from bindings"
5831494 to
85dc1dc
Compare
Description of Changes
Remove RLS bindings for 2.0.
API and ABI breaking changes
Older modules with RLS should continue to work.
Testing:
This PR is suppose to remove the interface, hence deletes smoketest and integration tests.
though we may want to keep some unit tests as we still support RLS in older modules. I will check for them before merging the PR.
Expected complexity level and risk
1