From c74e7c775789392f65e4b3cc6b5a7d52ab94053f Mon Sep 17 00:00:00 2001 From: antirez Date: Sat, 28 Nov 2009 18:03:09 +0100 Subject: [PATCH] ZRANGEBYSCORE memory leak fixed, ZRANGEBYSCORE initial test added --- redis.c | 1 + test-redis.tcl | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/redis.c b/redis.c index 6cf8f465..98434620 100644 --- a/redis.c +++ b/redis.c @@ -4587,6 +4587,7 @@ static void zrangebyscoreCommand(redisClient *c) { * it later */ lenobj = createObject(REDIS_STRING,NULL); addReply(c,lenobj); + decrRefCount(lenobj); while(ln && ln->score <= max) { ele = ln->obj; diff --git a/test-redis.tcl b/test-redis.tcl index 354016e0..22e88040 100644 --- a/test-redis.tcl +++ b/test-redis.tcl @@ -1014,6 +1014,27 @@ proc main {server port} { list $v1 $v2 [$r zscore zset foo] [$r zscore zset bar] } {{bar foo} {foo bar} -2 6} + test {ZRANGEBYSCORE basics} { + $r del zset + $r zadd zset 1 a + $r zadd zset 2 b + $r zadd zset 3 c + $r zadd zset 4 d + $r zadd zset 5 e + $r zrangebyscore zset 2 4 + } {b c d} + + test {Sorted sets +inf and -inf handling} { + $r del zset + $r zadd zset -100 a + $r zadd zset 200 b + $r zadd zset -300 c + $r zadd zset 1000000 d + $r zadd zset +inf max + $r zadd zset -inf min + $r zrange zset 0 -1 + } {min c a b d max} + test {EXPIRE - don't set timeouts multiple times} { $r set x foobar set v1 [$r expire x 5]