You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Handle RESP3 sets as Python lists
Although the RESP3 protocol defines the set data structure, sometimes
the responses from the Redis server contain sets with nested maps, which
cannot be represented in Python as sets with nested dicts, because dicts
are not hashable.
Versions of HIREDIS before 3.0.0 would cause segmentation fault when
parsing such responses. Starting with version 3.0.0 the problem was
fixed, with the compromise that RESP3 sets are represented as Python
lists.
The embedded RESP3 parser was so far trying to represent RESP3 sets as
Python sets, if possible. Only when this was not possible it would
switch to the list representation. Arguably this is not the best user
experience, not knowing when you will get back a set or a list.
Upgrade the required hiredis-py version to be at least 3.0.0, and change
the embedded parser to always represent RESP3 sets as lists. This way we
get a consistent experience in all cases.
This is a breaking change.
* Also cover RESP2 sets
* Fix failing tests
* Fix async RESP3 parser
0 commit comments