-
Notifications
You must be signed in to change notification settings - Fork 24.2k
New detailed key-spec flags (RO, RW, OW, RM, ACCESS, UPDATE, INSERT, DELETE) #10122
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
Conversation
|
update
PFADD and SMOVE already used INSERT rather than UPDATE |
Should |
yes.. all "POP"s should use delete. i did mark some that way, but not others. |
update:
|
In redis#10122, we modify the key spec flags to `RO` and `ACCESS`. But forgot to call generate-command-code.py. Also formatted it to follow the Python PEP8.
In #10122, we modify the key spec flags to `RO` and `ACCESS`. But forgot to call generate-command-code.py. Also formatted it to follow the Python PEP8.
…command (redis#12917) In redis#10122, we set the destination key's flag of SINTERSTORE to `RW`, however, this command doesn't actually read or modify the destination key, just overwrites it. Therefore, we change it to `OW` similarly to all other *STORE commands.
The new ACL key based permissions in #9974 require the key-specs (#8324) to have more explicit flags rather than just READ and WRITE. See discussion in #10040
This PR defines two groups of flags:
One about how redis internally handles the key (mutually-exclusive).
The other is about the logical operation done from the user's point of view (3 mutually exclusive write flags, and one read flag, all optional).
In both groups, if we can't explicitly flag something as explicit read-only, delete-only, or insert-only, we flag it as
RW
orUPDATE
.here's the definition from the code:
Unrelated changes:
shard_channel
key-spec flag to justchannel
.