kvrocks icon indicating copy to clipboard operation
kvrocks copied to clipboard

Add support for `flags` parameter of `redis.register_function`

Open i18nsite opened this issue 1 year ago • 1 comments

Search before asking

https://redis.io/docs/interact/programmability/functions-intro/#function-flags

image

Motivation

compatibility

Solution

No response

Are you willing to submit a PR?

  • [ ] I'm willing to submit a PR!

i18nsite avatar Mar 02 '24 10:03 i18nsite

@PragmaTwice

  • flags parameter in redis.register_function
  • will allow no-writes flag
  • do we need to support other flags? like allow-oom, admin

Possible implementation:

  1. RedisRegisterFunction parses flags table and checks for no-writes src/storage/scripting.cc
  2. if invalid flag, raise error, else store as constant (or something else)
  3. check function flags before execution FunctionCall src/storage/scripting.cc
if (read_only && !(flags & redis::kFunctionNoWrites)) {
  return {Status::NotOK, "Can not execute a function with write flag using fcall_ro."};
}

VasuDevrani avatar May 16 '24 15:05 VasuDevrani