@@ -176,7 +176,8 @@ class CommandTDigestAdd : public Commander {
176176 std::vector<double > values_;
177177};
178178
179- class CommandTDigestRevRank : public Commander {
179+ template <bool reverse>
180+ class TDigestRankCommand : public Commander {
180181 public:
181182 Status Parse (const std::vector<std::string> &args) override {
182183 key_name_ = args[1 ];
@@ -201,7 +202,7 @@ class CommandTDigestRevRank : public Commander {
201202 TDigest tdigest (srv->storage , conn->GetNamespace ());
202203 std::vector<int > result;
203204 result.reserve (origin_inputs_.size ());
204- if (const auto s = tdigest.RevRank (ctx, key_name_, unique_inputs_, result); !s.ok ()) {
205+ if (const auto s = tdigest.Rank (ctx, key_name_, unique_inputs_, reverse , result); !s.ok ()) {
205206 if (s.IsNotFound ()) {
206207 return {Status::RedisExecErr, errKeyNotFound};
207208 }
@@ -224,6 +225,10 @@ class CommandTDigestRevRank : public Commander {
224225 std::vector<std::string> origin_inputs_;
225226};
226227
228+ class CommandTDigestRevRank : public TDigestRankCommand <true > {};
229+
230+ class CommandTDigestRank : public TDigestRankCommand <false > {};
231+
227232class CommandTDigestMinMax : public Commander {
228233 public:
229234 explicit CommandTDigestMinMax (bool is_min) : is_min_(is_min) {}
@@ -418,6 +423,7 @@ REDIS_REGISTER_COMMANDS(TDigest, MakeCmdAttr<CommandTDigestCreate>("tdigest.crea
418423 MakeCmdAttr<CommandTDigestMax>(" tdigest.max" , 2 , " read-only" , 1 , 1 , 1 ),
419424 MakeCmdAttr<CommandTDigestMin>(" tdigest.min" , 2 , " read-only" , 1 , 1 , 1 ),
420425 MakeCmdAttr<CommandTDigestRevRank>(" tdigest.revrank" , -3 , " read-only" , 1 , 1 , 1 ),
426+ MakeCmdAttr<CommandTDigestRank>(" tdigest.rank" , -3 , " read-only" , 1 , 1 , 1 ),
421427 MakeCmdAttr<CommandTDigestQuantile>(" tdigest.quantile" , -3 , " read-only" , 1 , 1 , 1 ),
422428 MakeCmdAttr<CommandTDigestReset>(" tdigest.reset" , 2 , " write" , 1 , 1 , 1 ),
423429 MakeCmdAttr<CommandTDigestMerge>(" tdigest.merge" , -4 , " write" , GetMergeKeyRange));
0 commit comments