diff --git a/internal/command/expire.go b/internal/command/expire.go index 42389d1..c5f4b35 100644 --- a/internal/command/expire.go +++ b/internal/command/expire.go @@ -36,7 +36,7 @@ func (cmd *Expire) Run(w Writer, red Redka) (any, error) { err := red.Key().Expire(cmd.key, cmd.ttl) if err != nil && err != core.ErrNotFound { w.WriteError(cmd.Error(err)) - return false, err + return nil, err } if err == core.ErrNotFound { w.WriteInt(0) diff --git a/internal/command/expireat.go b/internal/command/expireat.go index d297ad2..9d7a4af 100644 --- a/internal/command/expireat.go +++ b/internal/command/expireat.go @@ -36,7 +36,7 @@ func (cmd *ExpireAt) Run(w Writer, red Redka) (any, error) { err := red.Key().ExpireAt(cmd.key, cmd.at) if err != nil && err != core.ErrNotFound { w.WriteError(cmd.Error(err)) - return false, err + return nil, err } if err == core.ErrNotFound { w.WriteInt(0) diff --git a/internal/command/flushdb.go b/internal/command/flushdb.go index 8860eee..84a5f49 100644 --- a/internal/command/flushdb.go +++ b/internal/command/flushdb.go @@ -19,7 +19,7 @@ func (cmd *FlushDB) Run(w Writer, red Redka) (any, error) { err := red.Key().DeleteAll() if err != nil { w.WriteError(cmd.Error(err)) - return false, err + return nil, err } w.WriteString("OK") return true, nil diff --git a/internal/command/get.go b/internal/command/get.go index 83f3343..55f39ff 100644 --- a/internal/command/get.go +++ b/internal/command/get.go @@ -27,7 +27,7 @@ func (cmd *Get) Run(w Writer, red Redka) (any, error) { } if err != nil { w.WriteError(cmd.Error(err)) - return val, err + return nil, err } w.WriteBulk(val) return val, nil diff --git a/internal/command/hget.go b/internal/command/hget.go index a10f9ec..ad5bfe4 100644 --- a/internal/command/hget.go +++ b/internal/command/hget.go @@ -29,7 +29,7 @@ func (cmd *HGet) Run(w Writer, red Redka) (any, error) { } if err != nil { w.WriteError(cmd.Error(err)) - return val, err + return nil, err } w.WriteBulk(val) return val, nil diff --git a/internal/command/persist.go b/internal/command/persist.go index b2078b8..67108b5 100644 --- a/internal/command/persist.go +++ b/internal/command/persist.go @@ -23,7 +23,7 @@ func (cmd *Persist) Run(w Writer, red Redka) (any, error) { err := red.Key().Persist(cmd.key) if err != nil && err != core.ErrNotFound { w.WriteError(cmd.Error(err)) - return false, err + return nil, err } if err == core.ErrNotFound { w.WriteInt(0) diff --git a/internal/command/rename.go b/internal/command/rename.go index e4cd7d5..1bbc9b1 100644 --- a/internal/command/rename.go +++ b/internal/command/rename.go @@ -23,7 +23,7 @@ func (cmd *Rename) Run(w Writer, red Redka) (any, error) { err := red.Key().Rename(cmd.key, cmd.newKey) if err != nil { w.WriteError(cmd.Error(err)) - return false, err + return nil, err } w.WriteString("OK") return true, nil diff --git a/internal/command/rename_test.go b/internal/command/rename_test.go index 6bc95f6..d5a755a 100644 --- a/internal/command/rename_test.go +++ b/internal/command/rename_test.go @@ -121,7 +121,7 @@ func TestRenameExec(t *testing.T) { conn := new(fakeConn) res, err := cmd.Run(conn, red) testx.AssertEqual(t, err, core.ErrNotFound) - testx.AssertEqual(t, res, false) + testx.AssertEqual(t, res, nil) testx.AssertEqual(t, strings.HasPrefix(conn.out(), ErrNotFound.Error()), true) key, _ := db.Key().Get("name") diff --git a/internal/command/renamenx.go b/internal/command/renamenx.go index d32e5ed..616eb4b 100644 --- a/internal/command/renamenx.go +++ b/internal/command/renamenx.go @@ -23,7 +23,7 @@ func (cmd *RenameNX) Run(w Writer, red Redka) (any, error) { ok, err := red.Key().RenameNotExists(cmd.key, cmd.newKey) if err != nil { w.WriteError(cmd.Error(err)) - return false, err + return nil, err } if ok { w.WriteInt(1) diff --git a/internal/command/renamenx_test.go b/internal/command/renamenx_test.go index 9714ee4..2722173 100644 --- a/internal/command/renamenx_test.go +++ b/internal/command/renamenx_test.go @@ -123,7 +123,7 @@ func TestRenameNXExec(t *testing.T) { conn := new(fakeConn) res, err := cmd.Run(conn, red) testx.AssertEqual(t, err, core.ErrNotFound) - testx.AssertEqual(t, res, false) + testx.AssertEqual(t, res, nil) testx.AssertEqual(t, strings.HasPrefix(conn.out(), ErrNotFound.Error()), true) key, _ := db.Key().Get("name") diff --git a/internal/command/set.go b/internal/command/set.go index dc20f05..3beb44a 100644 --- a/internal/command/set.go +++ b/internal/command/set.go @@ -71,7 +71,7 @@ func (cmd *Set) Run(w Writer, red Redka) (any, error) { err := red.Str().SetExpires(cmd.key, cmd.value, cmd.ttl) if err != nil { w.WriteError(cmd.Error(err)) - return false, err + return nil, err } w.WriteString("OK") return true, nil diff --git a/internal/command/unknown.go b/internal/command/unknown.go index c3a0234..4706533 100644 --- a/internal/command/unknown.go +++ b/internal/command/unknown.go @@ -13,5 +13,5 @@ func parseUnknown(b baseCmd) (*Unknown, error) { func (cmd *Unknown) Run(w Writer, _ Redka) (any, error) { err := ErrUnknownCmd w.WriteError(cmd.Error(err)) - return false, err + return nil, err } diff --git a/internal/command/zadd.go b/internal/command/zadd.go index cc5b7aa..7119947 100644 --- a/internal/command/zadd.go +++ b/internal/command/zadd.go @@ -28,7 +28,7 @@ func (cmd *ZAdd) Run(w Writer, red Redka) (any, error) { count, err := red.ZSet().AddMany(cmd.key, cmd.items) if err != nil { w.WriteError(cmd.Error(err)) - return 0, err + return nil, err } w.WriteInt(count) return count, nil diff --git a/internal/command/zadd_test.go b/internal/command/zadd_test.go index ddbcff7..2f3b150 100644 --- a/internal/command/zadd_test.go +++ b/internal/command/zadd_test.go @@ -146,7 +146,7 @@ func TestZAddExec(t *testing.T) { conn := new(fakeConn) res, err := cmd.Run(conn, red) testx.AssertErr(t, err, core.ErrKeyType) - testx.AssertEqual(t, res, 0) + testx.AssertEqual(t, res, nil) testx.AssertEqual(t, conn.out(), ErrKeyType.Error()+" (zadd)") }) } diff --git a/internal/command/zcard.go b/internal/command/zcard.go index 26721a6..5d60db0 100644 --- a/internal/command/zcard.go +++ b/internal/command/zcard.go @@ -21,7 +21,7 @@ func (cmd *ZCard) Run(w Writer, red Redka) (any, error) { n, err := red.ZSet().Len(cmd.key) if err != nil { w.WriteError(cmd.Error(err)) - return 0, err + return nil, err } w.WriteInt(n) return n, nil diff --git a/internal/command/zcount.go b/internal/command/zcount.go index 109b21b..aa92816 100644 --- a/internal/command/zcount.go +++ b/internal/command/zcount.go @@ -29,7 +29,7 @@ func (cmd *ZCount) Run(w Writer, red Redka) (any, error) { n, err := red.ZSet().Count(cmd.key, cmd.min, cmd.max) if err != nil { w.WriteError(cmd.Error(err)) - return 0, err + return nil, err } w.WriteInt(n) return n, nil diff --git a/internal/command/zinterstore.go b/internal/command/zinterstore.go index d2ca162..2e68cc0 100644 --- a/internal/command/zinterstore.go +++ b/internal/command/zinterstore.go @@ -44,7 +44,7 @@ func (cmd *ZInterStore) Run(w Writer, red Redka) (any, error) { count, err := inter.Store() if err != nil { w.WriteError(cmd.Error(err)) - return count, err + return nil, err } w.WriteInt(count) diff --git a/internal/command/zinterstore_test.go b/internal/command/zinterstore_test.go index 3358973..a547c35 100644 --- a/internal/command/zinterstore_test.go +++ b/internal/command/zinterstore_test.go @@ -258,7 +258,7 @@ func TestZInterStoreExec(t *testing.T) { conn := new(fakeConn) res, err := cmd.Run(conn, red) testx.AssertErr(t, err, core.ErrKeyType) - testx.AssertEqual(t, res, 0) + testx.AssertEqual(t, res, nil) testx.AssertEqual(t, conn.out(), ErrKeyType.Error()+" (zinterstore)") dest, _ := db.Str().Get("dest") diff --git a/internal/command/zrange.go b/internal/command/zrange.go index 8293a7c..50427df 100644 --- a/internal/command/zrange.go +++ b/internal/command/zrange.go @@ -63,7 +63,7 @@ func (cmd *ZRange) Run(w Writer, red Redka) (any, error) { items, err := rang.Run() if err != nil { w.WriteError(cmd.Error(err)) - return items, err + return nil, err } // write the response with/without scores diff --git a/internal/command/zrangebyscore.go b/internal/command/zrangebyscore.go index ca517e1..6e98adc 100644 --- a/internal/command/zrangebyscore.go +++ b/internal/command/zrangebyscore.go @@ -47,7 +47,7 @@ func (cmd *ZRangeByScore) Run(w Writer, red Redka) (any, error) { items, err := rang.Run() if err != nil { w.WriteError(cmd.Error(err)) - return items, err + return nil, err } // write the response with/without scores diff --git a/internal/command/zrem.go b/internal/command/zrem.go index 90e7bb3..9f68b1e 100644 --- a/internal/command/zrem.go +++ b/internal/command/zrem.go @@ -29,7 +29,7 @@ func (cmd *ZRem) Run(w Writer, red Redka) (any, error) { n, err := red.ZSet().Delete(cmd.key, cmd.members...) if err != nil { w.WriteError(cmd.Error(err)) - return 0, err + return nil, err } w.WriteInt(n) return n, nil diff --git a/internal/command/zremrangebyrank.go b/internal/command/zremrangebyrank.go index 1ec7f93..52b96bb 100644 --- a/internal/command/zremrangebyrank.go +++ b/internal/command/zremrangebyrank.go @@ -31,7 +31,7 @@ func (cmd *ZRemRangeByRank) Run(w Writer, red Redka) (any, error) { n, err := red.ZSet().DeleteWith(cmd.key).ByRank(cmd.start, cmd.stop).Run() if err != nil { w.WriteError(cmd.Error(err)) - return 0, err + return nil, err } w.WriteInt(n) return n, nil diff --git a/internal/command/zremrangebyscore.go b/internal/command/zremrangebyscore.go index 27f5ed7..f9e814d 100644 --- a/internal/command/zremrangebyscore.go +++ b/internal/command/zremrangebyscore.go @@ -31,7 +31,7 @@ func (cmd *ZRemRangeByScore) Run(w Writer, red Redka) (any, error) { n, err := red.ZSet().DeleteWith(cmd.key).ByScore(cmd.min, cmd.max).Run() if err != nil { w.WriteError(cmd.Error(err)) - return 0, err + return nil, err } w.WriteInt(n) return n, nil diff --git a/internal/command/zrevrange.go b/internal/command/zrevrange.go index 6ce24c9..f10f4e4 100644 --- a/internal/command/zrevrange.go +++ b/internal/command/zrevrange.go @@ -33,7 +33,7 @@ func (cmd *ZRevRange) Run(w Writer, red Redka) (any, error) { items, err := red.ZSet().RangeWith(cmd.key).ByRank(cmd.start, cmd.stop).Desc().Run() if err != nil { w.WriteError(cmd.Error(err)) - return items, err + return nil, err } // write the response with/without scores diff --git a/internal/command/zrevrangebyscore.go b/internal/command/zrevrangebyscore.go index 8430259..2b5f69e 100644 --- a/internal/command/zrevrangebyscore.go +++ b/internal/command/zrevrangebyscore.go @@ -47,7 +47,7 @@ func (cmd *ZRevRangeByScore) Run(w Writer, red Redka) (any, error) { items, err := rang.Run() if err != nil { w.WriteError(cmd.Error(err)) - return items, err + return nil, err } // write the response with/without scores diff --git a/internal/command/zunionstore.go b/internal/command/zunionstore.go index 57379ba..def7b19 100644 --- a/internal/command/zunionstore.go +++ b/internal/command/zunionstore.go @@ -44,7 +44,7 @@ func (cmd *ZUnionStore) Run(w Writer, red Redka) (any, error) { count, err := union.Store() if err != nil { w.WriteError(cmd.Error(err)) - return count, err + return nil, err } w.WriteInt(count) diff --git a/internal/command/zunionstore_test.go b/internal/command/zunionstore_test.go index a240905..c5fff32 100644 --- a/internal/command/zunionstore_test.go +++ b/internal/command/zunionstore_test.go @@ -244,7 +244,7 @@ func TestZUnionStoreExec(t *testing.T) { conn := new(fakeConn) res, err := cmd.Run(conn, red) testx.AssertErr(t, err, core.ErrKeyType) - testx.AssertEqual(t, res, 0) + testx.AssertEqual(t, res, nil) testx.AssertEqual(t, conn.out(), ErrKeyType.Error()+" (zunionstore)") dest, _ := db.Str().Get("dest")