]> git.saurik.com Git - redis.git/commitdiff
zipmap fix for large values
authorantirez <antirez@gmail.com>
Thu, 18 Mar 2010 02:23:44 +0000 (03:23 +0100)
committerantirez <antirez@gmail.com>
Thu, 18 Mar 2010 02:23:44 +0000 (03:23 +0100)
staticsymbols.h
test-redis.tcl
zipmap.c
zipmap.h

index 770537046a1b04b3379ea1a41dd705e8959d878e..c6a42d07a1bce0e6293aef05172f282c3881ea4e 100644 (file)
@@ -3,10 +3,12 @@ static struct redisFunctionSym symsTable[] = {
 {"_redisAssert",(unsigned long)_redisAssert},
 {"acceptHandler",(unsigned long)acceptHandler},
 {"addReply",(unsigned long)addReply},
 {"_redisAssert",(unsigned long)_redisAssert},
 {"acceptHandler",(unsigned long)acceptHandler},
 {"addReply",(unsigned long)addReply},
+{"addReplyBulk",(unsigned long)addReplyBulk},
 {"addReplyBulkLen",(unsigned long)addReplyBulkLen},
 {"addReplyDouble",(unsigned long)addReplyDouble},
 {"addReplyLong",(unsigned long)addReplyLong},
 {"addReplySds",(unsigned long)addReplySds},
 {"addReplyBulkLen",(unsigned long)addReplyBulkLen},
 {"addReplyDouble",(unsigned long)addReplyDouble},
 {"addReplyLong",(unsigned long)addReplyLong},
 {"addReplySds",(unsigned long)addReplySds},
+{"addReplyUlong",(unsigned long)addReplyUlong},
 {"aofRemoveTempFile",(unsigned long)aofRemoveTempFile},
 {"appendCommand",(unsigned long)appendCommand},
 {"appendServerSaveParams",(unsigned long)appendServerSaveParams},
 {"aofRemoveTempFile",(unsigned long)aofRemoveTempFile},
 {"appendCommand",(unsigned long)appendCommand},
 {"appendServerSaveParams",(unsigned long)appendServerSaveParams},
@@ -21,6 +23,7 @@ static struct redisFunctionSym symsTable[] = {
 {"brpopCommand",(unsigned long)brpopCommand},
 {"bytesToHuman",(unsigned long)bytesToHuman},
 {"call",(unsigned long)call},
 {"brpopCommand",(unsigned long)brpopCommand},
 {"bytesToHuman",(unsigned long)bytesToHuman},
 {"call",(unsigned long)call},
+{"checkType",(unsigned long)checkType},
 {"closeTimedoutClients",(unsigned long)closeTimedoutClients},
 {"compareStringObjects",(unsigned long)compareStringObjects},
 {"computeObjectSwappability",(unsigned long)computeObjectSwappability},
 {"closeTimedoutClients",(unsigned long)closeTimedoutClients},
 {"compareStringObjects",(unsigned long)compareStringObjects},
 {"computeObjectSwappability",(unsigned long)computeObjectSwappability},
@@ -81,6 +84,7 @@ static struct redisFunctionSym symsTable[] = {
 {"fwriteBulkObject",(unsigned long)fwriteBulkObject},
 {"fwriteBulkString",(unsigned long)fwriteBulkString},
 {"genRedisInfoString",(unsigned long)genRedisInfoString},
 {"fwriteBulkObject",(unsigned long)fwriteBulkObject},
 {"fwriteBulkString",(unsigned long)fwriteBulkString},
 {"genRedisInfoString",(unsigned long)genRedisInfoString},
+{"genericHgetallCommand",(unsigned long)genericHgetallCommand},
 {"genericZrangebyscoreCommand",(unsigned long)genericZrangebyscoreCommand},
 {"getCommand",(unsigned long)getCommand},
 {"getDecodedObject",(unsigned long)getDecodedObject},
 {"genericZrangebyscoreCommand",(unsigned long)genericZrangebyscoreCommand},
 {"getCommand",(unsigned long)getCommand},
 {"getDecodedObject",(unsigned long)getDecodedObject},
@@ -91,9 +95,15 @@ static struct redisFunctionSym symsTable[] = {
 {"glueReplyBuffersIfNeeded",(unsigned long)glueReplyBuffersIfNeeded},
 {"handleClientsBlockedOnSwappedKey",(unsigned long)handleClientsBlockedOnSwappedKey},
 {"handleClientsWaitingListPush",(unsigned long)handleClientsWaitingListPush},
 {"glueReplyBuffersIfNeeded",(unsigned long)glueReplyBuffersIfNeeded},
 {"handleClientsBlockedOnSwappedKey",(unsigned long)handleClientsBlockedOnSwappedKey},
 {"handleClientsWaitingListPush",(unsigned long)handleClientsWaitingListPush},
+{"hdelCommand",(unsigned long)hdelCommand},
+{"hexistsCommand",(unsigned long)hexistsCommand},
 {"hgetCommand",(unsigned long)hgetCommand},
 {"hgetCommand",(unsigned long)hgetCommand},
+{"hgetallCommand",(unsigned long)hgetallCommand},
+{"hkeysCommand",(unsigned long)hkeysCommand},
+{"hlenCommand",(unsigned long)hlenCommand},
 {"hsetCommand",(unsigned long)hsetCommand},
 {"htNeedsResize",(unsigned long)htNeedsResize},
 {"hsetCommand",(unsigned long)hsetCommand},
 {"htNeedsResize",(unsigned long)htNeedsResize},
+{"hvalsCommand",(unsigned long)hvalsCommand},
 {"incrCommand",(unsigned long)incrCommand},
 {"incrDecrCommand",(unsigned long)incrDecrCommand},
 {"incrRefCount",(unsigned long)incrRefCount},
 {"incrCommand",(unsigned long)incrCommand},
 {"incrDecrCommand",(unsigned long)incrDecrCommand},
 {"incrRefCount",(unsigned long)incrRefCount},
@@ -112,7 +122,9 @@ static struct redisFunctionSym symsTable[] = {
 {"lookupKey",(unsigned long)lookupKey},
 {"lookupKeyByPattern",(unsigned long)lookupKeyByPattern},
 {"lookupKeyRead",(unsigned long)lookupKeyRead},
 {"lookupKey",(unsigned long)lookupKey},
 {"lookupKeyByPattern",(unsigned long)lookupKeyByPattern},
 {"lookupKeyRead",(unsigned long)lookupKeyRead},
+{"lookupKeyReadOrReply",(unsigned long)lookupKeyReadOrReply},
 {"lookupKeyWrite",(unsigned long)lookupKeyWrite},
 {"lookupKeyWrite",(unsigned long)lookupKeyWrite},
+{"lookupKeyWriteOrReply",(unsigned long)lookupKeyWriteOrReply},
 {"lpopCommand",(unsigned long)lpopCommand},
 {"lpushCommand",(unsigned long)lpushCommand},
 {"lrangeCommand",(unsigned long)lrangeCommand},
 {"lpopCommand",(unsigned long)lpopCommand},
 {"lpushCommand",(unsigned long)lpushCommand},
 {"lrangeCommand",(unsigned long)lrangeCommand},
@@ -274,6 +286,7 @@ static struct redisFunctionSym symsTable[] = {
 {"zslInsert",(unsigned long)zslInsert},
 {"zslRandomLevel",(unsigned long)zslRandomLevel},
 {"zunionCommand",(unsigned long)zunionCommand},
 {"zslInsert",(unsigned long)zslInsert},
 {"zslRandomLevel",(unsigned long)zslRandomLevel},
 {"zunionCommand",(unsigned long)zunionCommand},
+{"zunionInterBlockClientOnSwappedKeys",(unsigned long)zunionInterBlockClientOnSwappedKeys},
 {"zunionInterGenericCommand",(unsigned long)zunionInterGenericCommand},
 {NULL,0}
 };
 {"zunionInterGenericCommand",(unsigned long)zunionInterGenericCommand},
 {NULL,0}
 };
index 3dd03fd24a424c56cf477a28dc6b3fedc07d3135..acb1acedcb8eccfdee2e4d6518939f09f2cfefc6 100644 (file)
@@ -152,6 +152,7 @@ proc createComplexDataset {r ops} {
             } {
                 $r zadd $k $d $v
             } {
             } {
                 $r zadd $k $d $v
             } {
+                puts "hset $k $f $v"
                 $r hset $k $f $v
             }
             set t [$r type $k]
                 $r hset $k $f $v
             }
             set t [$r type $k]
@@ -178,7 +179,7 @@ proc createComplexDataset {r ops} {
             }
             {hash} {
                 randpath {$r hset $k $f $v} \
             }
             {hash} {
                 randpath {$r hset $k $f $v} \
-                        {$r hdel $k $f}
+                        {puts "$r hdel $k $f"; $r hdel $k $f}
             }
         }
     }
             }
         }
     }
index 5f024dfa6cb732abf1b25cd3321ffdc148dddc38..f45ef0dd64c7d795638178d732934bb9755b6a36 100644 (file)
--- a/zipmap.c
+++ b/zipmap.c
@@ -116,7 +116,7 @@ static unsigned int zipmapDecodeLength(unsigned char *p) {
     unsigned int len = *p;
 
     if (len < ZIPMAP_BIGLEN) return len;
     unsigned int len = *p;
 
     if (len < ZIPMAP_BIGLEN) return len;
-    memcpy(&len,p,sizeof(unsigned int));
+    memcpy(&len,p+1,sizeof(unsigned int));
     return len;
 }
 
     return len;
 }
 
index 089472eddf320411e3f1f64f1285896c9178af10..e5f6c9f28e9bf196d1e7546cfba0202c3875f99e 100644 (file)
--- a/zipmap.h
+++ b/zipmap.h
@@ -43,5 +43,6 @@ unsigned char *zipmapNext(unsigned char *zm, unsigned char **key, unsigned int *
 int zipmapGet(unsigned char *zm, unsigned char *key, unsigned int klen, unsigned char **value, unsigned int *vlen);
 int zipmapExists(unsigned char *zm, unsigned char *key, unsigned int klen);
 unsigned int zipmapLen(unsigned char *zm);
 int zipmapGet(unsigned char *zm, unsigned char *key, unsigned int klen, unsigned char **value, unsigned int *vlen);
 int zipmapExists(unsigned char *zm, unsigned char *key, unsigned int klen);
 unsigned int zipmapLen(unsigned char *zm);
+void zipmapRepr(unsigned char *p);
 
 #endif
 
 #endif