mirror of
https://github.com/HDT3213/godis.git
synced 2025-10-22 08:19:33 +08:00
tiny fixes
This commit is contained in:
@@ -51,14 +51,19 @@ func EnqueueCmd(conn redis.Connection, cmdLine [][]byte) redis.Reply {
|
||||
cmdName := strings.ToLower(string(cmdLine[0]))
|
||||
cmd, ok := cmdTable[cmdName]
|
||||
if !ok {
|
||||
return protocol.MakeErrReply("ERR unknown command '" + cmdName + "'")
|
||||
err := protocol.MakeErrReply("ERR unknown command '" + cmdName + "'")
|
||||
conn.AddTxError(err)
|
||||
return err
|
||||
}
|
||||
if cmd.prepare == nil {
|
||||
return protocol.MakeErrReply("ERR command '" + cmdName + "' cannot be used in MULTI")
|
||||
err := protocol.MakeErrReply("ERR command '" + cmdName + "' cannot be used in MULTI")
|
||||
conn.AddTxError(err)
|
||||
return err
|
||||
}
|
||||
if !validateArity(cmd.arity, cmdLine) {
|
||||
// difference with redis: we won't enqueue command line with wrong arity
|
||||
return protocol.MakeArgNumErrReply(cmdName)
|
||||
err := protocol.MakeArgNumErrReply(cmdName)
|
||||
conn.AddTxError(err)
|
||||
return err
|
||||
}
|
||||
conn.EnqueueCmd(cmdLine)
|
||||
return protocol.MakeQueuedReply()
|
||||
@@ -69,6 +74,9 @@ func execMulti(db *DB, conn redis.Connection) redis.Reply {
|
||||
return protocol.MakeErrReply("ERR EXEC without MULTI")
|
||||
}
|
||||
defer conn.SetMultiState(false)
|
||||
if len(conn.GetTxErrors()) > 0 {
|
||||
return protocol.MakeErrReply("EXECABORT Transaction discarded because of previous errors.")
|
||||
}
|
||||
cmdLines := conn.GetQueuedCmdLine()
|
||||
return db.ExecMulti(conn, conn.GetWatching(), cmdLines)
|
||||
}
|
||||
|
Reference in New Issue
Block a user