diff --git a/src/server/common.cc b/src/server/common.cc index 06911663ab79..42e28f7cab0e 100644 --- a/src/server/common.cc +++ b/src/server/common.cc @@ -5,6 +5,7 @@ #include "server/common.h" #include +#include #include #include @@ -168,9 +169,9 @@ bool ParseDouble(string_view src, double* value) { if (src.empty()) return false; - if (src == "-inf") { + if (absl::EqualsIgnoreCase(src, "-inf")) { *value = -HUGE_VAL; - } else if (src == "+inf") { + } else if (absl::EqualsIgnoreCase(src, "+inf")) { *value = HUGE_VAL; } else { absl::from_chars_result result = absl::from_chars(src.data(), src.end(), *value); diff --git a/src/server/zset_family_test.cc b/src/server/zset_family_test.cc index e416afe14a41..4d31d0ce5d56 100644 --- a/src/server/zset_family_test.cc +++ b/src/server/zset_family_test.cc @@ -150,6 +150,16 @@ TEST_F(ZSetFamilyTest, ZRevRange) { resp = Run({"zrevrange", "key", "1", "2", "withscores"}); ASSERT_THAT(resp, ArrLen(4)); EXPECT_THAT(resp.GetVec(), ElementsAre("b", "1", "a", "-inf")); + + // Make sure that when using with upper case it works as well (see + // https://github.com/dragonflydb/dragonfly/issues/326) + resp = Run({"zrevrangebyscore", "key", "2", "-INF"}); + ASSERT_THAT(resp, ArrLen(3)); + EXPECT_THAT(resp.GetVec(), ElementsAre("c", "b", "a")); + + resp = Run({"zrevrangebyscore", "key", "2", "-INF", "withscores"}); + ASSERT_THAT(resp, ArrLen(6)); + EXPECT_THAT(resp.GetVec(), ElementsAre("c", "2", "b", "1", "a", "-inf")); } TEST_F(ZSetFamilyTest, ZScan) {