From 8126486c8e488a6f541fb8b3bc65156fa983c489 Mon Sep 17 00:00:00 2001 From: alex Date: Thu, 9 Jul 2026 16:51:26 +0200 Subject: added RENAME command --- handlers.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'handlers.go') diff --git a/handlers.go b/handlers.go index 0b5267c..105bca0 100644 --- a/handlers.go +++ b/handlers.go @@ -197,6 +197,30 @@ func handleFlushall(conn net.Conn, args []string) { }) conn.Write(serializeRESP(result)) } + +func handleRename(conn net.Conn, args []string){ + if len(args) != 3 { + err := errors.New("wrong number of arguments for 'RENAME'") + conn.Write(serializeRESP(err)) + return + } + keys := args[1:] + + result := db.ExecuteMulti(keys,func(shards []*Shard)interface{}{ + item, exists := db.getShard(keys[0]).data[keys[0]] + if !exists { + + return errors.New("no such key") + } + + db.getShard(keys[1]).data[keys[1]] = item + delete(db.getShard(keys[0]).data, keys[0]) + + return SimpleString("OK") + }) + conn.Write(serializeRESP(result)) +} + /* func handleRpush(conn net.Conn, args []string) { key := args[1] -- cgit v1.2.3