use the right object when cleaning up after zunion/zinter (fixes issue 216)

This commit is contained in:
Pieter Noordhuis 2010-04-01 22:07:50 +02:00
parent 14ae26d89d
commit 8bca8773b4
2 changed files with 6 additions and 1 deletions

View File

@ -5685,7 +5685,7 @@ static void zunionInterGenericCommand(redisClient *c, robj *dstkey, int op) {
addReplyLong(c, dstzset->zsl->length);
server.dirty++;
} else {
decrRefCount(dstzset);
decrRefCount(dstobj);
addReply(c, shared.czero);
}
zfree(src);

View File

@ -1489,6 +1489,11 @@ proc main {server port} {
list [$r zremrangebyrank zset 1 3] [$r zrange zset 0 -1]
} {3 {a e}}
test {ZUNION against non-existing key doesn't set destination} {
$r del zseta
list [$r zunion dst_key 1 zseta] [$r exists dst_key]
} {0 0}
test {ZUNION basics} {
$r del zseta zsetb zsetc
$r zadd zseta 1 a