From 520b5a33ae69405e0a2ea2e0bbffc5c0d781ede1 Mon Sep 17 00:00:00 2001 From: antirez Date: Thu, 4 Mar 2010 16:16:01 +0100 Subject: [PATCH] Now list push commands return the length of the new list, thanks to Gustavo Picon --- redis.c | 6 +++--- test-redis.tcl | 15 ++++++++++----- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/redis.c b/redis.c index a0beff284..fd1cb0a53 100644 --- a/redis.c +++ b/redis.c @@ -4075,7 +4075,7 @@ static void pushGenericCommand(redisClient *c, int where) { lobj = lookupKeyWrite(c->db,c->argv[1]); if (lobj == NULL) { if (handleClientsWaitingListPush(c,c->argv[1],c->argv[2])) { - addReply(c,shared.ok); + addReply(c,shared.cone); return; } lobj = createListObject(); @@ -4094,7 +4094,7 @@ static void pushGenericCommand(redisClient *c, int where) { return; } if (handleClientsWaitingListPush(c,c->argv[1],c->argv[2])) { - addReply(c,shared.ok); + addReply(c,shared.cone); return; } list = lobj->ptr; @@ -4106,7 +4106,7 @@ static void pushGenericCommand(redisClient *c, int where) { incrRefCount(c->argv[2]); } server.dirty++; - addReply(c,shared.ok); + addReplySds(c,sdscatprintf(sdsempty(),":%d\r\n",listLength(list))); } static void lpushCommand(redisClient *c) { diff --git a/test-redis.tcl b/test-redis.tcl index 0fc1e7dfc..a6acea18a 100644 --- a/test-redis.tcl +++ b/test-redis.tcl @@ -406,15 +406,20 @@ proc main {server port} { } {1} test {Basic LPUSH, RPUSH, LLENGTH, LINDEX} { - $r lpush mylist a - $r lpush mylist b - $r rpush mylist c - set res [$r llen mylist] + set res [$r lpush mylist a] + append res [$r lpush mylist b] + append res [$r rpush mylist c] + append res [$r llen mylist] + append res [$r rpush anotherlist d] + append res [$r lpush anotherlist e] + append res [$r llen anotherlist] append res [$r lindex mylist 0] append res [$r lindex mylist 1] append res [$r lindex mylist 2] + append res [$r lindex anotherlist 0] + append res [$r lindex anotherlist 1] list $res [$r lindex mylist 100] - } {3bac {}} + } {1233122baced {}} test {DEL a list} { $r del mylist