feat(server): allow running memory commands under script (#2382)

Signed-off-by: adi_holden <adi@dragonflydb.io>
This commit is contained in:
adiholden 2024-01-07 16:16:57 +02:00 committed by GitHub
parent d119ee8915
commit a1d85b7cb2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 1 deletions

View file

@ -924,6 +924,13 @@ TEST_F(MultiTest, EvalExpiration) {
EXPECT_LE(CheckedInt({"pttl", "x"}), 5000);
}
TEST_F(MultiTest, MemoryInScript) {
EXPECT_EQ(Run({"set", "x", "y"}), "OK");
auto resp = Run({"eval", "return redis.call('MEMORY', 'USAGE', KEYS[1])", "1", "x"});
EXPECT_THAT(resp, IntArg(0));
}
TEST_F(MultiTest, NoKeyTransactional) {
Run({"multi"});
Run({"ft._list"});

View file

@ -2439,7 +2439,7 @@ constexpr uint32_t kDfly = ADMIN;
void ServerFamily::Register(CommandRegistry* registry) {
constexpr auto kReplicaOpts = CO::LOADING | CO::ADMIN | CO::GLOBAL_TRANS;
constexpr auto kMemOpts = CO::LOADING | CO::READONLY | CO::FAST | CO::NOSCRIPT;
constexpr auto kMemOpts = CO::LOADING | CO::READONLY | CO::FAST;
registry->StartFamily();
*registry
<< CI{"AUTH", CO::NOSCRIPT | CO::FAST | CO::LOADING, -2, 0, 0, acl::kAuth}.HFUNC(Auth)