Fix for the variadic version of SREM. Regression test added.

This commit is contained in:
antirez 2011-05-31 20:14:29 +02:00
parent faa2a80f89
commit 3738ff5f32
2 changed files with 10 additions and 1 deletions

View File

@ -249,8 +249,11 @@ void sremCommand(redisClient *c) {
for (j = 2; j < c->argc; j++) {
if (setTypeRemove(set,c->argv[j])) {
if (setTypeSize(set) == 0) dbDelete(c->db,c->argv[1]);
deleted++;
if (setTypeSize(set) == 0) {
dbDelete(c->db,c->argv[1]);
break;
}
}
}
if (deleted) {

View File

@ -105,6 +105,12 @@ start_server {
lsort [r smembers myset]
} {a c}
test {SREM variadic version with more args needed to destroy the key} {
r del myset
r sadd myset 1 2 3
r srem myset 1 2 3 4 5 6 7 8
} {3}
foreach {type} {hashtable intset} {
for {set i 1} {$i <= 5} {incr i} {
r del [format "set%d" $i]