Now list push commands return the length of the new list, thanks to Gustavo Picon

This commit is contained in:
antirez 2010-03-04 16:16:01 +01:00
parent 8fe7fad771
commit 520b5a33ae
2 changed files with 13 additions and 8 deletions

View File

@ -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) {

View File

@ -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