fix(xinfo): send integer info in correct type (#1379)

Signed-off-by: Abhradeep Chakraborty <abhradeep@dragonflydb.io>
This commit is contained in:
Abhradeep Chakraborty 2023-06-09 22:41:23 +05:30 committed by GitHub
parent 1011720a25
commit c72aa6f5f2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 6 deletions

View file

@ -158,7 +158,7 @@ TEST_F(RdbTest, Stream) {
resp = Run({"xinfo", "groups", "key:1"}); // test dereferences array of size 1 resp = Run({"xinfo", "groups", "key:1"}); // test dereferences array of size 1
EXPECT_THAT(resp, ArrLen(8)); EXPECT_THAT(resp, ArrLen(8));
EXPECT_THAT(resp.GetVec(), ElementsAre("name", "g2", "consumers", "0", "pending", "0", EXPECT_THAT(resp.GetVec(), ElementsAre("name", "g2", "consumers", IntArg(0), "pending", IntArg(0),
"last-delivered-id", "1655444851523-1")); "last-delivered-id", "1655444851523-1"));
resp = Run({"xinfo", "groups", "key:2"}); resp = Run({"xinfo", "groups", "key:2"});

View file

@ -1266,13 +1266,17 @@ void StreamFamily::XInfo(CmdArgList args, ConnectionContext* cntx) {
if (result) { if (result) {
(*cntx)->StartArray(result->size()); (*cntx)->StartArray(result->size());
for (const auto& ginfo : *result) { for (const auto& ginfo : *result) {
absl::AlphaNum an1(ginfo.consumer_size);
absl::AlphaNum an2(ginfo.pending_size);
string last_id = StreamIdRepr(ginfo.last_id); string last_id = StreamIdRepr(ginfo.last_id);
string_view arr[8] = {"name", ginfo.name, "consumers", an1.Piece(),
"pending", an2.Piece(), "last-delivered-id", last_id};
(*cntx)->SendStringArr(absl::Span<string_view>{arr, 8}, RedisReplyBuilder::MAP); (*cntx)->StartCollection(4, RedisReplyBuilder::MAP);
(*cntx)->SendBulkString("name");
(*cntx)->SendBulkString(ginfo.name);
(*cntx)->SendBulkString("consumers");
(*cntx)->SendLong(ginfo.consumer_size);
(*cntx)->SendBulkString("pending");
(*cntx)->SendLong(ginfo.pending_size);
(*cntx)->SendBulkString("last-delivered-id");
(*cntx)->SendBulkString(last_id);
} }
return; return;
} }