From 5b8893ef84c31ea9e05adfedd671d60d5a7f34b1 Mon Sep 17 00:00:00 2001 From: John Sully Date: Mon, 8 Apr 2019 16:52:57 -0400 Subject: [PATCH] Fix addition RESP3 regressions (return empty set) Former-commit-id: 740fc6c2b865f3846fc7c2b53e5b8303020964f2 --- src/t_list.cpp | 2 +- src/t_set.cpp | 5 ++++- src/t_zset.cpp | 4 ++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/t_list.cpp b/src/t_list.cpp index 6024f8315..caa26e1ae 100644 --- a/src/t_list.cpp +++ b/src/t_list.cpp @@ -402,7 +402,7 @@ void lrangeCommand(client *c) { if ((getLongFromObjectOrReply(c, c->argv[2], &start, NULL) != C_OK) || (getLongFromObjectOrReply(c, c->argv[3], &end, NULL) != C_OK)) return; - if ((o = lookupKeyReadOrReply(c,c->argv[1],shared.null[c->resp])) == NULL + if ((o = lookupKeyReadOrReply(c,c->argv[1],(c->resp < 3) ? shared.emptyarray : shared.null[c->resp])) == NULL || checkType(c,o,OBJ_LIST)) return; llen = listTypeLength(o); diff --git a/src/t_set.cpp b/src/t_set.cpp index 42266666d..998c0b7dc 100644 --- a/src/t_set.cpp +++ b/src/t_set.cpp @@ -813,7 +813,10 @@ void sinterGenericCommand(client *c, robj **setkeys, } addReply(c,shared.czero); } else { - addReplyNull(c); + if (c->resp >= 3) + addReplyNull(c); + else + addReply(c, shared.emptyarray); } return; } diff --git a/src/t_zset.cpp b/src/t_zset.cpp index 7476034de..f7564b90c 100644 --- a/src/t_zset.cpp +++ b/src/t_zset.cpp @@ -2427,7 +2427,7 @@ void zrangeGenericCommand(client *c, int reverse) { return; } - if ((zobj = lookupKeyReadOrReply(c,key,shared.null[c->resp])) == NULL + if ((zobj = lookupKeyReadOrReply(c,key,(c->resp < 3) ? shared.emptyarray : shared.null[c->resp])) == NULL || checkType(c,zobj,OBJ_ZSET)) return; /* Sanitize indexes. */ @@ -2575,7 +2575,7 @@ void genericZrangebyscoreCommand(client *c, int reverse) { } /* Ok, lookup the key and get the range */ - if ((zobj = lookupKeyReadOrReply(c,key,shared.null[c->resp])) == NULL || + if ((zobj = lookupKeyReadOrReply(c,key,(c->resp < 3) ? shared.emptyarray : shared.null[c->resp])) == NULL || checkType(c,zobj,OBJ_ZSET)) return; if (zobj->encoding == OBJ_ENCODING_ZIPLIST) {