RESP3: fix cases of NULL reported instead of empty aggregate.

This commit is contained in:
antirez
2019-09-02 12:50:47 +02:00
parent b12ccc840e
commit 06d490342f
6 changed files with 29 additions and 19 deletions

View File

@ -418,10 +418,10 @@ void spopWithCountCommand(client *c) {
if ((set = lookupKeyWriteOrReply(c,c->argv[1],shared.null[c->resp]))
== NULL || checkType(c,set,OBJ_SET)) return;
/* If count is zero, serve an empty multibulk ASAP to avoid special
/* If count is zero, serve an empty set ASAP to avoid special
* cases later. */
if (count == 0) {
addReplyNull(c);
addReply(c,shared.emptyset[c->resp]);
return;
}
@ -632,13 +632,13 @@ void srandmemberWithCountCommand(client *c) {
uniq = 0;
}
if ((set = lookupKeyReadOrReply(c,c->argv[1],shared.null[c->resp]))
if ((set = lookupKeyReadOrReply(c,c->argv[1],shared.emptyset[c->resp]))
== NULL || checkType(c,set,OBJ_SET)) return;
size = setTypeSize(set);
/* If count is zero, serve it ASAP to avoid special cases later. */
if (count == 0) {
addReplyNull(c);
addReply(c,shared.emptyset[c->resp]);
return;
}
@ -813,7 +813,7 @@ void sinterGenericCommand(client *c, robj **setkeys,
}
addReply(c,shared.czero);
} else {
addReplyNull(c);
addReply(c,shared.emptyset[c->resp]);
}
return;
}