Commit 552a6fb3 authored by antirez's avatar antirez
Browse files

fix type id for specially encoded data types, for direct blob saving of...

fix type id for specially encoded data types, for direct blob saving of intsets, ziplists and zipmaps
parent 5045ff84
...@@ -463,8 +463,15 @@ int rdbSave(char *filename) { ...@@ -463,8 +463,15 @@ int rdbSave(char *filename) {
o->storage == REDIS_VM_SWAPPING) { o->storage == REDIS_VM_SWAPPING) {
int otype = o->type; int otype = o->type;
/* Fix the type id for specially encoded data types */
if (otype == REDIS_HASH && o->encoding == REDIS_ENCODING_ZIPMAP) if (otype == REDIS_HASH && o->encoding == REDIS_ENCODING_ZIPMAP)
otype = REDIS_HASH_ZIPMAP; otype = REDIS_HASH_ZIPMAP;
else if (otype == REDIS_LIST &&
o->encoding == REDIS_ENCODING_ZIPLIST)
otype = REDIS_LIST_ZIPLIST;
else if (otype == REDIS_SET &&
o->encoding == REDIS_ENCODING_INTSET)
otype = REDIS_SET_INTSET;
/* Save type, key, value */ /* Save type, key, value */
if (rdbSaveType(fp,otype) == -1) goto werr; if (rdbSaveType(fp,otype) == -1) goto werr;
if (rdbSaveStringObject(fp,&key) == -1) goto werr; if (rdbSaveStringObject(fp,&key) == -1) goto werr;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment