mirror of
https://codeberg.org/redict/redict.git
synced 2025-01-22 16:18:28 -05:00
HSCAN implemented.
This commit is contained in:
parent
4a1f1cc0d7
commit
e50090aa06
2
src/db.c
2
src/db.c
@ -469,7 +469,7 @@ void scanGenericCommand(redisClient *c, robj *o) {
|
|||||||
listAddNodeTail(keys,
|
listAddNodeTail(keys,
|
||||||
(vstr != NULL) ? createStringObject((char*)vstr,vlen) :
|
(vstr != NULL) ? createStringObject((char*)vstr,vlen) :
|
||||||
createStringObjectFromLongLong(vll));
|
createStringObjectFromLongLong(vll));
|
||||||
ziplistNext(o->ptr,p);
|
p = ziplistNext(o->ptr,p);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
redisPanic("Not handled encoding in SCAN.");
|
redisPanic("Not handled encoding in SCAN.");
|
||||||
|
@ -195,6 +195,7 @@ struct redisCommand redisCommandTable[] = {
|
|||||||
{"hvals",hvalsCommand,2,"rS",0,NULL,1,1,1,0,0},
|
{"hvals",hvalsCommand,2,"rS",0,NULL,1,1,1,0,0},
|
||||||
{"hgetall",hgetallCommand,2,"r",0,NULL,1,1,1,0,0},
|
{"hgetall",hgetallCommand,2,"r",0,NULL,1,1,1,0,0},
|
||||||
{"hexists",hexistsCommand,3,"r",0,NULL,1,1,1,0,0},
|
{"hexists",hexistsCommand,3,"r",0,NULL,1,1,1,0,0},
|
||||||
|
{"hscan",hscanCommand,-3,"rR",0,NULL,1,1,1,0,0},
|
||||||
{"incrby",incrbyCommand,3,"wm",0,NULL,1,1,1,0,0},
|
{"incrby",incrbyCommand,3,"wm",0,NULL,1,1,1,0,0},
|
||||||
{"decrby",decrbyCommand,3,"wm",0,NULL,1,1,1,0,0},
|
{"decrby",decrbyCommand,3,"wm",0,NULL,1,1,1,0,0},
|
||||||
{"incrbyfloat",incrbyfloatCommand,3,"wm",0,NULL,1,1,1,0,0},
|
{"incrbyfloat",incrbyfloatCommand,3,"wm",0,NULL,1,1,1,0,0},
|
||||||
|
@ -1344,6 +1344,7 @@ void hkeysCommand(redisClient *c);
|
|||||||
void hvalsCommand(redisClient *c);
|
void hvalsCommand(redisClient *c);
|
||||||
void hgetallCommand(redisClient *c);
|
void hgetallCommand(redisClient *c);
|
||||||
void hexistsCommand(redisClient *c);
|
void hexistsCommand(redisClient *c);
|
||||||
|
void hscanCommand(redisClient *c);
|
||||||
void configCommand(redisClient *c);
|
void configCommand(redisClient *c);
|
||||||
void hincrbyCommand(redisClient *c);
|
void hincrbyCommand(redisClient *c);
|
||||||
void hincrbyfloatCommand(redisClient *c);
|
void hincrbyfloatCommand(redisClient *c);
|
||||||
|
@ -759,3 +759,11 @@ void hexistsCommand(redisClient *c) {
|
|||||||
|
|
||||||
addReply(c, hashTypeExists(o,c->argv[2]) ? shared.cone : shared.czero);
|
addReply(c, hashTypeExists(o,c->argv[2]) ? shared.cone : shared.czero);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void hscanCommand(redisClient *c) {
|
||||||
|
robj *o;
|
||||||
|
|
||||||
|
if ((o= lookupKeyReadOrReply(c,c->argv[1],shared.emptyscan)) == NULL ||
|
||||||
|
checkType(c,o,REDIS_HASH)) return;
|
||||||
|
scanGenericCommand(c,o);
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user