From 0b7f6d0913f96f2fe8280afc681c6e0a65ca81c9 Mon Sep 17 00:00:00 2001
From: antirez <antirez@gmail.com>
Date: Wed, 6 Apr 2011 15:36:10 +0200
Subject: [PATCH] make sure that OBJECT ENCODING returns skiplist for sorted
 sets, and not raw, so that once we will merge specially encoded sorted sets
 everything will make sense.

---
 src/object.c | 6 +++++-
 src/redis.h  | 1 +
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/object.c b/src/object.c
index 4de9dbaa..6a9b0214 100644
--- a/src/object.c
+++ b/src/object.c
@@ -93,10 +93,13 @@ robj *createHashObject(void) {
 
 robj *createZsetObject(void) {
     zset *zs = zmalloc(sizeof(*zs));
+    robj *o;
 
     zs->dict = dictCreate(&zsetDictType,NULL);
     zs->zsl = zslCreate();
-    return createObject(REDIS_ZSET,zs);
+    o = createObject(REDIS_ZSET,zs);
+    o->encoding = REDIS_ENCODING_SKIPLIST;
+    return o;
 }
 
 void freeStringObject(robj *o) {
@@ -402,6 +405,7 @@ char *strEncoding(int encoding) {
     case REDIS_ENCODING_LINKEDLIST: return "linkedlist";
     case REDIS_ENCODING_ZIPLIST: return "ziplist";
     case REDIS_ENCODING_INTSET: return "intset";
+    case REDIS_ENCODING_SKIPLIST: return "skiplist";
     default: return "unknown";
     }
 }
diff --git a/src/redis.h b/src/redis.h
index 3ceffd42..26f33451 100644
--- a/src/redis.h
+++ b/src/redis.h
@@ -86,6 +86,7 @@
 #define REDIS_ENCODING_LINKEDLIST 4 /* Encoded as regular linked list */
 #define REDIS_ENCODING_ZIPLIST 5 /* Encoded as ziplist */
 #define REDIS_ENCODING_INTSET 6  /* Encoded as intset */
+#define REDIS_ENCODING_SKIPLIST 7  /* Encoded as skiplist */
 
 /* Object types only used for dumping to disk */
 #define REDIS_EXPIRETIME 253