• Binbin's avatar
    Fix for set max entries edge case in setTypeCreate / setTypeMaybeConvert (#12183) · fd566f40
    Binbin authored
    In the judgment in setTypeCreate, we should judge size_hint <= max_entries.
    
    This results in the following inconsistencies:
    ```
    127.0.0.1:6379> config set set-max-intset-entries 5 set-max-listpack-entries 5
    OK
    
    127.0.0.1:6379> sadd intset_set1 1 2 3 4 5
    (integer) 5
    127.0.0.1:6379> object encoding intset_set1
    "hashtable"
    127.0.0.1:6379> sadd intset_set2 1 2 3 4
    (integer) 4
    127.0.0.1:6379> sadd intset_set2 5
    (integer) 1
    127.0.0.1:6379> object encoding intset_set2
    "intset"
    
    127.0.0.1:6379> sadd listpack_set1 a 1 2 3 4
    (integer) 5
    127.0.0.1:6379> object encoding listpack_set1
    "hashtable"
    127.0.0.1:6379> sadd listpack_set2 a 1 2 3
    (integer) 4
    127.0.0.1:6379> sadd listpack_set2 4
    (integer) 1
    127.0.0.1:6379> object encoding listpack_set2
    "listpack"
    ```
    
    This was introduced in #12019, added corresponding tests.
    fd566f40
t_hash.c 38.5 KB