zipmap fix for large values

This commit is contained in:
antirez 2010-03-18 03:23:44 +01:00
parent db5946fc27
commit ad6de43c80
4 changed files with 17 additions and 2 deletions

View File

@ -3,10 +3,12 @@ static struct redisFunctionSym symsTable[] = {
{"_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},
{"addReplyUlong",(unsigned long)addReplyUlong},
{"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},
{"checkType",(unsigned long)checkType},
{"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},
{"genericHgetallCommand",(unsigned long)genericHgetallCommand},
{"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},
{"hdelCommand",(unsigned long)hdelCommand},
{"hexistsCommand",(unsigned long)hexistsCommand},
{"hgetCommand",(unsigned long)hgetCommand},
{"hgetallCommand",(unsigned long)hgetallCommand},
{"hkeysCommand",(unsigned long)hkeysCommand},
{"hlenCommand",(unsigned long)hlenCommand},
{"hsetCommand",(unsigned long)hsetCommand},
{"htNeedsResize",(unsigned long)htNeedsResize},
{"hvalsCommand",(unsigned long)hvalsCommand},
{"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},
{"lookupKeyReadOrReply",(unsigned long)lookupKeyReadOrReply},
{"lookupKeyWrite",(unsigned long)lookupKeyWrite},
{"lookupKeyWriteOrReply",(unsigned long)lookupKeyWriteOrReply},
{"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},
{"zunionInterBlockClientOnSwappedKeys",(unsigned long)zunionInterBlockClientOnSwappedKeys},
{"zunionInterGenericCommand",(unsigned long)zunionInterGenericCommand},
{NULL,0}
};

View File

@ -152,6 +152,7 @@ proc createComplexDataset {r ops} {
} {
$r zadd $k $d $v
} {
puts "hset $k $f $v"
$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} \
{$r hdel $k $f}
{puts "$r hdel $k $f"; $r hdel $k $f}
}
}
}

View File

@ -116,7 +116,7 @@ static unsigned int zipmapDecodeLength(unsigned char *p) {
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;
}

View File

@ -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);
void zipmapRepr(unsigned char *p);
#endif