mirror of
https://github.com/fluencelabs/redis
synced 2025-03-17 16:10:50 +00:00
HSCAN/ZSCAN: skip value when matching.
This fixes issue #1360 and #1362.
This commit is contained in:
parent
1a0cea33a0
commit
f56f78d159
13
src/db.c
13
src/db.c
@ -505,11 +505,16 @@ void scanGenericCommand(redisClient *c, robj *o) {
|
||||
if (filter) {
|
||||
decrRefCount(kobj);
|
||||
listDelNode(keys, node);
|
||||
/* Also remove the value for hashes and sorted sets. */
|
||||
if (o && (o->type == REDIS_ZSET || o->type == REDIS_HASH)) {
|
||||
node = nextnode;
|
||||
}
|
||||
|
||||
/* If this is an hash or a sorted set, we have a flat list of
|
||||
* key-value elements, so if this element was filtered, remove the
|
||||
* value, or skip it if it was not filtered: we only match keys. */
|
||||
if (o && (o->type == REDIS_ZSET || o->type == REDIS_HASH)) {
|
||||
node = nextnode;
|
||||
nextnode = listNextNode(node);
|
||||
if (filter) {
|
||||
kobj = listNodeValue(node);
|
||||
nextnode = listNextNode(node);
|
||||
decrRefCount(kobj);
|
||||
listDelNode(keys, node);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user