You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@geode.apache.org by GitBox <gi...@apache.org> on 2022/02/11 21:03:41 UTC

[GitHub] [geode] jdeppe-pivotal commented on a change in pull request #7354: GEODE-10032: Add Category to RedisCommandType

jdeppe-pivotal commented on a change in pull request #7354:
URL: https://github.com/apache/geode/pull/7354#discussion_r805003477



##########
File path: geode-for-redis/src/main/java/org/apache/geode/redis/internal/commands/RedisCommandType.java
##########
@@ -163,215 +165,295 @@
    *** Supported Commands ***
    ***************************************/
 
+  /***************** Admin *******************/
+  CLUSTER(new ClusterExecutor(), Category.ADMIN, SUPPORTED,
+      new Parameter().min(2).custom(ClusterParameterRequirements.checkParameters()).firstKey(0)
+          .flags(Flag.ADMIN, RANDOM, STALE)),
+  QUIT(new QuitExecutor(), Category.ADMIN, SUPPORTED, new Parameter().firstKey(0)),
+  SLOWLOG(new SlowlogExecutor(), Category.ADMIN, SUPPORTED, new Parameter().min(2)
+      .custom(SlowlogParameterRequirements.checkParameters()).firstKey(0)
+      .flags(Flag.ADMIN, RANDOM, LOADING, STALE)),
+
   /*************** Connection ****************/
-  AUTH(new AuthExecutor(), SUPPORTED, new Parameter().min(2).max(3, ERROR_SYNTAX).firstKey(0)
-      .flags(NOSCRIPT, LOADING, STALE, FAST, NO_AUTH)),
-  CLIENT(new ClientExecutor(), SUPPORTED,
-      new Parameter().min(2).firstKey(0).flags(ADMIN, NOSCRIPT, RANDOM, LOADING, STALE)),
-  ECHO(new EchoExecutor(), SUPPORTED, new Parameter().exact(2).firstKey(0).flags(FAST)),
-  PING(new PingExecutor(), SUPPORTED, new Parameter().min(1).max(2).firstKey(0).flags(STALE, FAST)),
-  QUIT(new QuitExecutor(), SUPPORTED, new Parameter().firstKey(0)),
-
-  /*************** Keys ******************/
-
-  DEL(new DelExecutor(), SUPPORTED, new Parameter().min(2).lastKey(-1).flags(WRITE)),
-  DUMP(new DumpExecutor(), SUPPORTED, new Parameter().exact(2).flags(READONLY, RANDOM)),
-  EXISTS(new ExistsExecutor(), SUPPORTED, new Parameter().min(2).lastKey(-1).flags(READONLY, FAST)),
-  EXPIRE(new ExpireExecutor(), SUPPORTED, new Parameter().exact(3).flags(WRITE, FAST)),
-  EXPIREAT(new ExpireAtExecutor(), SUPPORTED, new Parameter().exact(3).flags(WRITE, FAST)),
-  KEYS(new KeysExecutor(), SUPPORTED,
+  AUTH(new AuthExecutor(), Category.CONNECTION, SUPPORTED,
+      new Parameter().min(2).max(3, ERROR_SYNTAX).firstKey(0)
+          .flags(NOSCRIPT, LOADING, STALE, FAST, NO_AUTH)),
+  CLIENT(new ClientExecutor(), Category.CONNECTION, SUPPORTED,
+      new Parameter().min(2).firstKey(0).flags(Flag.ADMIN, NOSCRIPT, RANDOM, LOADING, STALE)),
+  ECHO(new EchoExecutor(), Category.CONNECTION, SUPPORTED,
+      new Parameter().exact(2).firstKey(0).flags(FAST)),
+  PING(new PingExecutor(), Category.CONNECTION, SUPPORTED,
+      new Parameter().min(1).max(2).firstKey(0).flags(STALE, FAST)),
+  COMMAND(new CommandCommandExecutor(), Category.CONNECTION, SUPPORTED,
+      new Parameter().min(1).firstKey(0).flags(RANDOM, LOADING, STALE)),
+
+  /*************** Keyspace ******************/
+
+  DEL(new DelExecutor(), Category.KEYSPACE, SUPPORTED,
+      new Parameter().min(2).lastKey(-1).flags(WRITE)),
+  DUMP(new DumpExecutor(), Category.KEYSPACE, SUPPORTED,
+      new Parameter().exact(2).flags(READONLY, RANDOM)),
+  EXISTS(new ExistsExecutor(), Category.KEYSPACE, SUPPORTED,
+      new Parameter().min(2).lastKey(-1).flags(READONLY, FAST)),
+  EXPIRE(new ExpireExecutor(), Category.KEYSPACE, SUPPORTED,
+      new Parameter().exact(3).flags(WRITE, FAST)),
+  EXPIREAT(new ExpireAtExecutor(), Category.KEYSPACE, SUPPORTED,
+      new Parameter().exact(3).flags(WRITE, FAST)),
+  KEYS(new KeysExecutor(), Category.KEYSPACE, SUPPORTED,
       new Parameter().exact(2).firstKey(0).flags(READONLY, SORT_FOR_SCRIPT)),
-  PERSIST(new PersistExecutor(), SUPPORTED, new Parameter().exact(2).flags(WRITE, FAST)),
-  PEXPIRE(new PExpireExecutor(), SUPPORTED, new Parameter().exact(3).flags(WRITE, FAST)),
-  PEXPIREAT(new PExpireAtExecutor(), SUPPORTED, new Parameter().exact(3).flags(WRITE, FAST)),
-  PTTL(new PTTLExecutor(), SUPPORTED, new Parameter().exact(2).flags(READONLY, RANDOM, FAST)),
-  RENAME(new RenameExecutor(), SUPPORTED, new Parameter().exact(3).lastKey(2).flags(WRITE)),
-  RENAMENX(new RenameNXExecutor(), SUPPORTED,
+  PERSIST(new PersistExecutor(), Category.KEYSPACE, SUPPORTED,
+      new Parameter().exact(2).flags(WRITE, FAST)),
+  PEXPIRE(new PExpireExecutor(), Category.KEYSPACE, SUPPORTED,
+      new Parameter().exact(3).flags(WRITE, FAST)),
+  PEXPIREAT(new PExpireAtExecutor(), Category.KEYSPACE, SUPPORTED,
+      new Parameter().exact(3).flags(WRITE, FAST)),
+  PTTL(new PTTLExecutor(), Category.KEYSPACE, SUPPORTED,
+      new Parameter().exact(2).flags(READONLY, RANDOM, FAST)),
+  RENAME(new RenameExecutor(), Category.KEYSPACE, SUPPORTED,
+      new Parameter().exact(3).lastKey(2).flags(WRITE)),
+  RENAMENX(new RenameNXExecutor(), Category.KEYSPACE, SUPPORTED,
       new Parameter().exact(3).lastKey(2).flags(WRITE, FAST)),
-  RESTORE(new RestoreExecutor(), SUPPORTED, new Parameter().min(4).flags(WRITE, DENYOOM)),
-  TTL(new TTLExecutor(), SUPPORTED, new Parameter().exact(2).flags(READONLY, RANDOM, FAST)),
-  TYPE(new TypeExecutor(), SUPPORTED, new Parameter().exact(2).flags(READONLY, FAST)),
+  RESTORE(new RestoreExecutor(), Category.KEYSPACE, SUPPORTED,
+      new Parameter().min(4).flags(WRITE, DENYOOM)),
+  TTL(new TTLExecutor(), Category.KEYSPACE, SUPPORTED,
+      new Parameter().exact(2).flags(READONLY, RANDOM, FAST)),
+  TYPE(new TypeExecutor(), Category.KEYSPACE, SUPPORTED,
+      new Parameter().exact(2).flags(READONLY, FAST)),
 
   /************* Strings *****************/
 
-  APPEND(new AppendExecutor(), SUPPORTED, new Parameter().exact(3).flags(WRITE, DENYOOM, FAST)),
-  DECR(new DecrExecutor(), SUPPORTED, new Parameter().exact(2).flags(WRITE, DENYOOM, FAST)),
-  DECRBY(new DecrByExecutor(), SUPPORTED, new Parameter().exact(3).flags(WRITE, DENYOOM, FAST)),
-  GET(new GetExecutor(), SUPPORTED, new Parameter().exact(2).flags(READONLY, FAST)),
-  GETSET(new GetSetExecutor(), SUPPORTED, new Parameter().exact(3).flags(WRITE, DENYOOM, FAST)),
-  INCRBY(new IncrByExecutor(), SUPPORTED, new Parameter().exact(3).flags(WRITE, DENYOOM, FAST)),
-  INCR(new IncrExecutor(), SUPPORTED, new Parameter().exact(2).flags(WRITE, DENYOOM, FAST)),
-  GETRANGE(new GetRangeExecutor(), SUPPORTED, new Parameter().exact(4).flags(READONLY)),
-  INCRBYFLOAT(new IncrByFloatExecutor(), SUPPORTED,
+  APPEND(new AppendExecutor(), Category.STRING, SUPPORTED,
+      new Parameter().exact(3).flags(WRITE, DENYOOM, FAST)),
+  DECR(new DecrExecutor(), Category.STRING, SUPPORTED,
+      new Parameter().exact(2).flags(WRITE, DENYOOM, FAST)),
+  DECRBY(new DecrByExecutor(), Category.STRING, SUPPORTED,
+      new Parameter().exact(3).flags(WRITE, DENYOOM, FAST)),
+  GET(new GetExecutor(), Category.STRING, SUPPORTED,
+      new Parameter().exact(2).flags(READONLY, FAST)),
+  GETSET(new GetSetExecutor(), Category.STRING, SUPPORTED,
+      new Parameter().exact(3).flags(WRITE, DENYOOM, FAST)),
+  INCRBY(new IncrByExecutor(), Category.STRING, SUPPORTED,
       new Parameter().exact(3).flags(WRITE, DENYOOM, FAST)),
-  MGET(new MGetExecutor(), SUPPORTED, new Parameter().min(2).lastKey(-1).flags(READONLY, FAST)),
-  MSET(new MSetExecutor(), SUPPORTED,
+  INCR(new IncrExecutor(), Category.STRING, SUPPORTED,
+      new Parameter().exact(2).flags(WRITE, DENYOOM, FAST)),
+  GETRANGE(new GetRangeExecutor(), Category.STRING, SUPPORTED,
+      new Parameter().exact(4).flags(READONLY)),
+  INCRBYFLOAT(new IncrByFloatExecutor(), Category.STRING, SUPPORTED,
+      new Parameter().exact(3).flags(WRITE, DENYOOM, FAST)),
+  MGET(new MGetExecutor(), Category.STRING, SUPPORTED,
+      new Parameter().min(2).lastKey(-1).flags(READONLY, FAST)),
+  MSET(new MSetExecutor(), Category.STRING, SUPPORTED,
       new Parameter().min(3).odd().lastKey(-1).step(2).flags(WRITE, DENYOOM)),
-  MSETNX(new MSetNXExecutor(), SUPPORTED,
+  MSETNX(new MSetNXExecutor(), Category.STRING, SUPPORTED,
       new Parameter().min(3).odd().lastKey(-1).step(2).flags(WRITE, DENYOOM)),
-  PSETEX(new PSetEXExecutor(), SUPPORTED, new Parameter().exact(4).flags(WRITE, DENYOOM)),
-  SET(new SetExecutor(), SUPPORTED, new Parameter().min(3).flags(WRITE, DENYOOM)),
-  SETEX(new SetEXExecutor(), SUPPORTED, new Parameter().exact(4).flags(WRITE, DENYOOM)),
-  SETNX(new SetNXExecutor(), SUPPORTED, new Parameter().exact(3).flags(WRITE, DENYOOM, FAST)),
-  SETRANGE(new SetRangeExecutor(), SUPPORTED, new Parameter().exact(4).flags(WRITE, DENYOOM)),
-  STRLEN(new StrlenExecutor(), SUPPORTED, new Parameter().exact(2).flags(READONLY, FAST)),
+  PSETEX(new PSetEXExecutor(), Category.STRING, SUPPORTED,
+      new Parameter().exact(4).flags(WRITE, DENYOOM)),
+  SET(new SetExecutor(), Category.STRING, SUPPORTED,
+      new Parameter().min(3).flags(WRITE, DENYOOM)),
+  SETEX(new SetEXExecutor(), Category.STRING, SUPPORTED,
+      new Parameter().exact(4).flags(WRITE, DENYOOM)),
+  SETNX(new SetNXExecutor(), Category.STRING, SUPPORTED,
+      new Parameter().exact(3).flags(WRITE, DENYOOM, FAST)),
+  SETRANGE(new SetRangeExecutor(), Category.STRING, SUPPORTED,
+      new Parameter().exact(4).flags(WRITE, DENYOOM)),
+  STRLEN(new StrlenExecutor(), Category.STRING, SUPPORTED,
+      new Parameter().exact(2).flags(READONLY, FAST)),
 
   /************* Hashes *****************/
 
-  HDEL(new HDelExecutor(), SUPPORTED, new Parameter().min(3).flags(WRITE, FAST)),
-  HGET(new HGetExecutor(), SUPPORTED, new Parameter().exact(3).flags(READONLY, FAST)),
-  HGETALL(new HGetAllExecutor(), SUPPORTED, new Parameter().exact(2).flags(READONLY, RANDOM)),
-  HINCRBYFLOAT(new HIncrByFloatExecutor(), SUPPORTED,
+  HDEL(new HDelExecutor(), Category.HASH, SUPPORTED, new Parameter().min(3).flags(WRITE, FAST)),
+  HGET(new HGetExecutor(), Category.HASH, SUPPORTED,
+      new Parameter().exact(3).flags(READONLY, FAST)),
+  HGETALL(new HGetAllExecutor(), Category.HASH, SUPPORTED,
+      new Parameter().exact(2).flags(READONLY, RANDOM)),
+  HINCRBYFLOAT(new HIncrByFloatExecutor(), Category.HASH, SUPPORTED,
+      new Parameter().exact(4).flags(WRITE, DENYOOM, FAST)),
+  HLEN(new HLenExecutor(), Category.HASH, SUPPORTED,
+      new Parameter().exact(2).flags(READONLY, FAST)),
+  HMGET(new HMGetExecutor(), Category.HASH, SUPPORTED,
+      new Parameter().min(3).flags(READONLY, FAST)),
+  HMSET(new HMSetExecutor(), Category.HASH, SUPPORTED,
+      new Parameter().min(4).even().flags(WRITE, DENYOOM, FAST)),
+  HSET(new HSetExecutor(), Category.HASH, SUPPORTED,
+      new Parameter().min(4).even().flags(WRITE, DENYOOM, FAST)),
+  HSETNX(new HSetNXExecutor(), Category.HASH, SUPPORTED,
       new Parameter().exact(4).flags(WRITE, DENYOOM, FAST)),
-  HLEN(new HLenExecutor(), SUPPORTED, new Parameter().exact(2).flags(READONLY, FAST)),
-  HMGET(new HMGetExecutor(), SUPPORTED, new Parameter().min(3).flags(READONLY, FAST)),
-  HMSET(new HMSetExecutor(), SUPPORTED, new Parameter().min(4).even().flags(WRITE, DENYOOM, FAST)),
-  HSET(new HSetExecutor(), SUPPORTED, new Parameter().min(4).even().flags(WRITE, DENYOOM, FAST)),
-  HSETNX(new HSetNXExecutor(), SUPPORTED, new Parameter().exact(4).flags(WRITE, DENYOOM, FAST)),
-  HSTRLEN(new HStrLenExecutor(), SUPPORTED, new Parameter().exact(3).flags(READONLY, FAST)),
-  HINCRBY(new HIncrByExecutor(), SUPPORTED, new Parameter().exact(4).flags(WRITE, DENYOOM, FAST)),
-  HVALS(new HValsExecutor(), SUPPORTED, new Parameter().exact(2).flags(READONLY, SORT_FOR_SCRIPT)),
-  HSCAN(new HScanExecutor(), SUPPORTED, new Parameter().min(3).flags(READONLY, RANDOM),
+  HSTRLEN(new HStrLenExecutor(), Category.HASH, SUPPORTED,
+      new Parameter().exact(3).flags(READONLY, FAST)),
+  HINCRBY(new HIncrByExecutor(), Category.HASH, SUPPORTED,
+      new Parameter().exact(4).flags(WRITE, DENYOOM, FAST)),
+  HVALS(new HValsExecutor(), Category.HASH, SUPPORTED,
+      new Parameter().exact(2).flags(READONLY, SORT_FOR_SCRIPT)),
+  HSCAN(new HScanExecutor(), Category.HASH, SUPPORTED,
+      new Parameter().min(3).flags(READONLY, RANDOM),
       new Parameter().odd(ERROR_SYNTAX)),
-  HEXISTS(new HExistsExecutor(), SUPPORTED, new Parameter().exact(3).flags(READONLY, FAST)),
-  HKEYS(new HKeysExecutor(), SUPPORTED, new Parameter().exact(2).flags(READONLY, SORT_FOR_SCRIPT)),
+  HEXISTS(new HExistsExecutor(), Category.HASH, SUPPORTED,
+      new Parameter().exact(3).flags(READONLY, FAST)),
+  HKEYS(new HKeysExecutor(), Category.HASH, SUPPORTED,
+      new Parameter().exact(2).flags(READONLY, SORT_FOR_SCRIPT)),
 
   /************* Sets *****************/
 
-  SADD(new SAddExecutor(), SUPPORTED, new Parameter().min(3).flags(WRITE, DENYOOM, FAST)),
-  SCARD(new SCardExecutor(), SUPPORTED, new Parameter().exact(2).flags(READONLY, FAST)),
-  SDIFF(new SDiffExecutor(), SUPPORTED,
+  SADD(new SAddExecutor(), Category.SET, SUPPORTED,
+      new Parameter().min(3).flags(WRITE, DENYOOM, FAST)),
+  SCARD(new SCardExecutor(), Category.SET, SUPPORTED,
+      new Parameter().exact(2).flags(READONLY, FAST)),
+  SDIFF(new SDiffExecutor(), Category.SET, SUPPORTED,
       new Parameter().min(2).lastKey(-1).flags(READONLY, SORT_FOR_SCRIPT)),
-  SDIFFSTORE(new SDiffStoreExecutor(), SUPPORTED,
+  SDIFFSTORE(new SDiffStoreExecutor(), Category.SET, SUPPORTED,
       new Parameter().min(3).lastKey(-1).flags(WRITE, DENYOOM)),
-  SINTER(new SInterExecutor(), SUPPORTED,
+  SINTER(new SInterExecutor(), Category.SET, SUPPORTED,
       new Parameter().min(2).lastKey(-1).flags(READONLY, SORT_FOR_SCRIPT)),
-  SINTERSTORE(new SInterStoreExecutor(), SUPPORTED,
+  SINTERSTORE(new SInterStoreExecutor(), Category.SET, SUPPORTED,
       new Parameter().min(3).lastKey(-1).flags(WRITE, DENYOOM)),
-  SISMEMBER(new SIsMemberExecutor(), SUPPORTED, new Parameter().exact(3).flags(READONLY, FAST)),
-  SMEMBERS(new SMembersExecutor(), SUPPORTED,
+  SISMEMBER(new SIsMemberExecutor(), Category.SET, SUPPORTED,
+      new Parameter().exact(3).flags(READONLY, FAST)),
+  SMEMBERS(new SMembersExecutor(), Category.SET, SUPPORTED,
       new Parameter().exact(2).flags(READONLY, SORT_FOR_SCRIPT)),
-  SMOVE(new SMoveExecutor(), SUPPORTED, new Parameter().exact(4).lastKey(2).flags(WRITE, FAST)),
-  SPOP(new SPopExecutor(), SUPPORTED,
+  SMOVE(new SMoveExecutor(), Category.SET, SUPPORTED,
+      new Parameter().exact(4).lastKey(2).flags(WRITE, FAST)),
+  SPOP(new SPopExecutor(), Category.SET, SUPPORTED,
       new Parameter().min(2).max(3, ERROR_SYNTAX).flags(WRITE, RANDOM, FAST)),
-  SRANDMEMBER(new SRandMemberExecutor(), SUPPORTED,
+  SRANDMEMBER(new SRandMemberExecutor(), Category.SET, SUPPORTED,
       new Parameter().min(2).max(3, ERROR_SYNTAX).flags(READONLY, RANDOM)),
-  SREM(new SRemExecutor(), SUPPORTED, new Parameter().min(3).flags(WRITE, FAST)),
-  SSCAN(new SScanExecutor(), SUPPORTED, new Parameter().min(3).flags(READONLY, RANDOM),
+  SREM(new SRemExecutor(), Category.SET, SUPPORTED, new Parameter().min(3).flags(WRITE, FAST)),
+  SSCAN(new SScanExecutor(), Category.SET, SUPPORTED,
+      new Parameter().min(3).flags(READONLY, RANDOM),
       new Parameter().odd(ERROR_SYNTAX)),
-  SUNION(new SUnionExecutor(), SUPPORTED,
+  SUNION(new SUnionExecutor(), Category.SET, SUPPORTED,
       new Parameter().min(2).lastKey(-1).flags(READONLY, SORT_FOR_SCRIPT)),
-  SUNIONSTORE(new SUnionStoreExecutor(), SUPPORTED,
+  SUNIONSTORE(new SUnionStoreExecutor(), Category.SET, SUPPORTED,
       new Parameter().min(3).lastKey(-1).flags(WRITE, DENYOOM)),
 
   /************ Sorted Sets **************/
 
-  ZADD(new ZAddExecutor(), SUPPORTED, new Parameter().min(4).flags(WRITE, DENYOOM, FAST)),
-  ZCARD(new ZCardExecutor(), SUPPORTED, new Parameter().exact(2).flags(READONLY, FAST)),
-  ZCOUNT(new ZCountExecutor(), SUPPORTED, new Parameter().exact(4).flags(READONLY, FAST)),
-  ZINCRBY(new ZIncrByExecutor(), SUPPORTED, new Parameter().exact(4).flags(WRITE, DENYOOM, FAST)),
-  ZINTERSTORE(new ZInterStoreExecutor(), SUPPORTED,
+  ZADD(new ZAddExecutor(), Category.SORTEDSET, SUPPORTED,
+      new Parameter().min(4).flags(WRITE, DENYOOM, FAST)),
+  ZCARD(new ZCardExecutor(), Category.SORTEDSET, SUPPORTED,
+      new Parameter().exact(2).flags(READONLY, FAST)),
+  ZCOUNT(new ZCountExecutor(), Category.SORTEDSET, SUPPORTED,
+      new Parameter().exact(4).flags(READONLY, FAST)),
+  ZINCRBY(new ZIncrByExecutor(), Category.SORTEDSET, SUPPORTED,
+      new Parameter().exact(4).flags(WRITE, DENYOOM, FAST)),
+  ZINTERSTORE(new ZInterStoreExecutor(), Category.SORTEDSET, SUPPORTED,
       new Parameter().min(4).flags(WRITE, DENYOOM, MOVABLEKEYS)),
-  ZLEXCOUNT(new ZLexCountExecutor(), SUPPORTED, new Parameter().exact(4).flags(READONLY, FAST)),
-  ZPOPMAX(new ZPopMaxExecutor(), SUPPORTED,
+  ZLEXCOUNT(new ZLexCountExecutor(), Category.SORTEDSET, SUPPORTED,
+      new Parameter().exact(4).flags(READONLY, FAST)),
+  ZPOPMAX(new ZPopMaxExecutor(), Category.SORTEDSET, SUPPORTED,
       new Parameter().min(2).max(3, ERROR_SYNTAX).flags(WRITE, FAST)),
-  ZPOPMIN(new ZPopMinExecutor(), SUPPORTED,
+  ZPOPMIN(new ZPopMinExecutor(), Category.SORTEDSET, SUPPORTED,
       new Parameter().min(2).max(3, ERROR_SYNTAX).flags(WRITE, FAST)),
-  ZRANGE(new ZRangeExecutor(), SUPPORTED,
+  ZRANGE(new ZRangeExecutor(), Category.SORTEDSET, SUPPORTED,
       new Parameter().min(4).max(5, ERROR_SYNTAX).flags(READONLY)),
-  ZRANGEBYLEX(new ZRangeByLexExecutor(), SUPPORTED, new Parameter().min(4).flags(READONLY)),
-  ZRANGEBYSCORE(new ZRangeByScoreExecutor(), SUPPORTED, new Parameter().min(4).flags(READONLY)),
-  ZRANK(new ZRankExecutor(), SUPPORTED, new Parameter().exact(3).flags(READONLY, FAST)),
-  ZREM(new ZRemExecutor(), SUPPORTED, new Parameter().min(3).flags(WRITE, FAST)),
-  ZREMRANGEBYLEX(new ZRemRangeByLexExecutor(), SUPPORTED, new Parameter().exact(4).flags(WRITE)),
-  ZREMRANGEBYRANK(new ZRemRangeByRankExecutor(), SUPPORTED, new Parameter().exact(4).flags(WRITE)),
-  ZREMRANGEBYSCORE(new ZRemRangeByScoreExecutor(), SUPPORTED,
+  ZRANGEBYLEX(new ZRangeByLexExecutor(), Category.SORTEDSET, SUPPORTED,
+      new Parameter().min(4).flags(READONLY)),
+  ZRANGEBYSCORE(new ZRangeByScoreExecutor(), Category.SORTEDSET, SUPPORTED,
+      new Parameter().min(4).flags(READONLY)),
+  ZRANK(new ZRankExecutor(), Category.SORTEDSET, SUPPORTED,
+      new Parameter().exact(3).flags(READONLY, FAST)),
+  ZREM(new ZRemExecutor(), Category.SORTEDSET, SUPPORTED,
+      new Parameter().min(3).flags(WRITE, FAST)),
+  ZREMRANGEBYLEX(new ZRemRangeByLexExecutor(), Category.SORTEDSET, SUPPORTED,
+      new Parameter().exact(4).flags(WRITE)),
+  ZREMRANGEBYRANK(new ZRemRangeByRankExecutor(), Category.SORTEDSET, SUPPORTED,
       new Parameter().exact(4).flags(WRITE)),
-  ZREVRANGE(new ZRevRangeExecutor(), SUPPORTED,
+  ZREMRANGEBYSCORE(new ZRemRangeByScoreExecutor(), Category.SORTEDSET, SUPPORTED,
+      new Parameter().exact(4).flags(WRITE)),
+  ZREVRANGE(new ZRevRangeExecutor(), Category.SORTEDSET, SUPPORTED,
       new Parameter().min(4).max(5, ERROR_SYNTAX).flags(READONLY)),
-  ZREVRANGEBYLEX(new ZRevRangeByLexExecutor(), SUPPORTED, new Parameter().min(4).flags(READONLY)),
-  ZREVRANGEBYSCORE(new ZRevRangeByScoreExecutor(), SUPPORTED,
+  ZREVRANGEBYLEX(new ZRevRangeByLexExecutor(), Category.SORTEDSET, SUPPORTED,
+      new Parameter().min(4).flags(READONLY)),
+  ZREVRANGEBYSCORE(new ZRevRangeByScoreExecutor(), Category.SORTEDSET, SUPPORTED,
       new Parameter().min(4).flags(READONLY)),
-  ZREVRANK(new ZRevRankExecutor(), SUPPORTED, new Parameter().exact(3).flags(READONLY, FAST)),
-  ZSCAN(new ZScanExecutor(), SUPPORTED, new Parameter().min(3).flags(READONLY, RANDOM),
+  ZREVRANK(new ZRevRankExecutor(), Category.SORTEDSET, SUPPORTED,
+      new Parameter().exact(3).flags(READONLY, FAST)),
+  ZSCAN(new ZScanExecutor(), Category.SORTEDSET, SUPPORTED,
+      new Parameter().min(3).flags(READONLY, RANDOM),
       new Parameter().odd(ERROR_SYNTAX)),
-  ZSCORE(new ZScoreExecutor(), SUPPORTED, new Parameter().exact(3).flags(READONLY, FAST)),
-  ZUNIONSTORE(new ZUnionStoreExecutor(), SUPPORTED,
+  ZSCORE(new ZScoreExecutor(), Category.SORTEDSET, SUPPORTED,
+      new Parameter().exact(3).flags(READONLY, FAST)),
+  ZUNIONSTORE(new ZUnionStoreExecutor(), Category.SORTEDSET, SUPPORTED,
       new Parameter().min(4).flags(WRITE, DENYOOM, MOVABLEKEYS)),
 
-  /************* Server *****************/
-  COMMAND(new COMMANDCommandExecutor(), SUPPORTED, new Parameter().min(1).firstKey(0).flags(RANDOM,
-      LOADING, STALE)),
-  SLOWLOG(new SlowlogExecutor(), SUPPORTED, new Parameter().min(2)
-      .custom(SlowlogParameterRequirements.checkParameters()).firstKey(0)
-      .flags(ADMIN, RANDOM, LOADING, STALE)),
-  INFO(new InfoExecutor(), SUPPORTED, new Parameter().min(1).max(2, ERROR_SYNTAX).firstKey(0)
-      .flags(RANDOM, LOADING, STALE)),
-  LOLWUT(new LolWutExecutor(), SUPPORTED, new Parameter().min(1).firstKey(0).flags(READONLY, FAST)),
-
-
   /********** Publish Subscribe **********/
-  SUBSCRIBE(new SubscribeExecutor(), SUPPORTED, new Parameter().min(2).firstKey(0).flags(
-      Flag.PUBSUB,
-      NOSCRIPT,
-      LOADING, STALE)),
-  PUBLISH(new PublishExecutor(), SUPPORTED,
+
+  SUBSCRIBE(new SubscribeExecutor(), Category.PUBSUB, SUPPORTED,
+      new Parameter().min(2).firstKey(0).flags(Flag.PUBSUB, NOSCRIPT, LOADING, STALE)),
+  PUBLISH(new PublishExecutor(), Category.PUBSUB, SUPPORTED,
       new Parameter().exact(3).firstKey(0).flags(Flag.PUBSUB, LOADING, STALE, FAST, MAY_REPLICATE)),
-  PSUBSCRIBE(new PsubscribeExecutor(), SUPPORTED,
+  PSUBSCRIBE(new PsubscribeExecutor(), Category.PUBSUB, SUPPORTED,
       new Parameter().min(2).firstKey(0).flags(Flag.PUBSUB, NOSCRIPT, LOADING, STALE)),
-  PUNSUBSCRIBE(new PunsubscribeExecutor(), SUPPORTED,
+  PUNSUBSCRIBE(new PunsubscribeExecutor(), Category.PUBSUB, SUPPORTED,
       new Parameter().min(1).firstKey(0).flags(Flag.PUBSUB, NOSCRIPT, LOADING, STALE)),
-  UNSUBSCRIBE(new UnsubscribeExecutor(), SUPPORTED,
+  UNSUBSCRIBE(new UnsubscribeExecutor(), Category.PUBSUB, SUPPORTED,
       new Parameter().min(1).firstKey(0).flags(Flag.PUBSUB, NOSCRIPT, LOADING, STALE)),
-  PUBSUB(new PubSubExecutor(), SUPPORTED,
+  PUBSUB(new PubSubExecutor(), Category.PUBSUB, SUPPORTED,
       new Parameter().min(2).firstKey(0).flags(Flag.PUBSUB, RANDOM, LOADING, STALE)),
 
-  /************* Cluster *****************/
-  CLUSTER(new ClusterExecutor(), SUPPORTED, new Parameter().min(2)
-      .custom(ClusterParameterRequirements.checkParameters()).firstKey(0)
-      .flags(ADMIN, RANDOM, STALE)),
+  /************* Uncategorized *****************/
+
+  INFO(new InfoExecutor(), Category.UNCATEGORIZED, SUPPORTED,
+      new Parameter().min(1).max(2, ERROR_SYNTAX).firstKey(0)
+          .flags(RANDOM, LOADING, STALE)),
+  LOLWUT(new LolWutExecutor(), Category.UNCATEGORIZED, SUPPORTED,
+      new Parameter().min(1).firstKey(0).flags(READONLY, FAST)),
+
 
   /***************************************
    ******** Unsupported Commands *********
    ***************************************/
 
-  /*************** Connection *************/
-
-  SELECT(new SelectExecutor(), UNSUPPORTED, new Parameter().exact(2).firstKey(0).flags(LOADING,
-      STALE,
-      FAST)),
+  /*************** Keyspace ******************/
 
-  /*************** Keys ******************/
-
-  SCAN(new ScanExecutor(), UNSUPPORTED, new Parameter().min(2).even(ERROR_SYNTAX).firstKey(0).flags(
-      READONLY,
-      RANDOM)),
-  UNLINK(new DelExecutor(), UNSUPPORTED, new Parameter().min(2).lastKey(-1).flags(WRITE, FAST)),
-
-  /************** Strings ****************/
-
-  BITCOUNT(new BitCountExecutor(), UNSUPPORTED, new Parameter().min(2).flags(READONLY)),
-  BITOP(new BitOpExecutor(), UNSUPPORTED,
+  DBSIZE(new DBSizeExecutor(), Category.KEYSPACE, UNSUPPORTED,
+      new Parameter().exact(1).firstKey(0).flags(READONLY, FAST)),
+  FLUSHALL(new FlushAllExecutor(), Category.KEYSPACE, UNSUPPORTED,
+      new Parameter().min(1).max(2, ERROR_SYNTAX).firstKey(0).flags(WRITE)),
+  FLUSHDB(new FlushAllExecutor(), Category.KEYSPACE, UNSUPPORTED,
+      new Parameter().min(1).max(2, ERROR_SYNTAX).firstKey(0).flags(WRITE)),
+  SCAN(new ScanExecutor(), Category.KEYSPACE, UNSUPPORTED,
+      new Parameter().min(2).even(ERROR_SYNTAX).firstKey(0).flags(READONLY, RANDOM)),
+  SELECT(new SelectExecutor(), Category.KEYSPACE, UNSUPPORTED,
+      new Parameter().exact(2).firstKey(0).flags(LOADING, STALE, FAST)),

Review comment:
       The category information is derived from the categories returned by the `INFO` command. So against Redis, `INFO SELECT` lists the categories as `@keyspace` and `@fast`. Using these values allows us to verify against a stricter source (any given redis version). The docs are a lot less specific and could easily re-categorize commands without us knowing.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@geode.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org