mirror of
https://github.com/fluencelabs/redis
synced 2025-06-18 03:31:21 +00:00
variadic SADD
This commit is contained in:
15
src/t_set.c
15
src/t_set.c
@ -218,9 +218,9 @@ void setTypeConvert(robj *setobj, int enc) {
|
||||
|
||||
void saddCommand(redisClient *c) {
|
||||
robj *set;
|
||||
int j, added = 0;
|
||||
|
||||
set = lookupKeyWrite(c->db,c->argv[1]);
|
||||
c->argv[2] = tryObjectEncoding(c->argv[2]);
|
||||
if (set == NULL) {
|
||||
set = setTypeCreate(c->argv[2]);
|
||||
dbAdd(c->db,c->argv[1],set);
|
||||
@ -230,13 +230,14 @@ void saddCommand(redisClient *c) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (setTypeAdd(set,c->argv[2])) {
|
||||
signalModifiedKey(c->db,c->argv[1]);
|
||||
server.dirty++;
|
||||
addReply(c,shared.cone);
|
||||
} else {
|
||||
addReply(c,shared.czero);
|
||||
|
||||
for (j = 2; j < c->argc; j++) {
|
||||
c->argv[j] = tryObjectEncoding(c->argv[j]);
|
||||
if (setTypeAdd(set,c->argv[j])) added++;
|
||||
}
|
||||
if (added) signalModifiedKey(c->db,c->argv[1]);
|
||||
server.dirty += added;
|
||||
addReplyLongLong(c,added);
|
||||
}
|
||||
|
||||
void sremCommand(redisClient *c) {
|
||||
|
Reference in New Issue
Block a user