]> git.saurik.com Git - redis.git/commitdiff
Remove sorted set when empty after ZREMRANGEBY*
authorPieter Noordhuis <pcnoordhuis@gmail.com>
Mon, 21 Mar 2011 22:54:35 +0000 (23:54 +0100)
committerPieter Noordhuis <pcnoordhuis@gmail.com>
Mon, 21 Mar 2011 22:54:46 +0000 (23:54 +0100)
src/t_zset.c

index 03a79ce9b924b7f1a719d36cb1cd2fa4934af63c..f630ff02eb447e22b20ffa23af7761beb64e9d23 100644 (file)
@@ -1012,6 +1012,7 @@ void zremrangebyscoreCommand(redisClient *c) {
 
     if (zobj->encoding == REDIS_ENCODING_ZIPLIST) {
         zobj->ptr = zzlDeleteRangeByScore(zobj->ptr,range,&deleted);
+        if (zzlLength(zobj->ptr) == 0) dbDelete(c->db,key);
     } else if (zobj->encoding == REDIS_ENCODING_RAW) {
         zset *zs = zobj->ptr;
         deleted = zslDeleteRangeByScore(zs->zsl,range,zs->dict);
@@ -1057,6 +1058,7 @@ void zremrangebyrankCommand(redisClient *c) {
     if (zobj->encoding == REDIS_ENCODING_ZIPLIST) {
         /* Correct for 1-based rank. */
         zobj->ptr = zzlDeleteRangeByRank(zobj->ptr,start+1,end+1,&deleted);
+        if (zzlLength(zobj->ptr) == 0) dbDelete(c->db,key);
     } else if (zobj->encoding == REDIS_ENCODING_RAW) {
         zset *zs = zobj->ptr;