From abfac47be031762eed9478a83a19092fb669df07 Mon Sep 17 00:00:00 2001 From: michael-grunder Date: Wed, 30 Nov 2022 17:54:30 -0800 Subject: [PATCH] Implement SMISMEMBER for RedisCluster See #1894 --- redis_cluster.c | 6 ++++++ redis_cluster.stub.php | 9 +++++++-- redis_cluster_arginfo.h | 8 ++++++-- redis_cluster_legacy_arginfo.h | 6 +++++- tests/RedisClusterTest.php | 1 - 5 files changed, 24 insertions(+), 6 deletions(-) diff --git a/redis_cluster.c b/redis_cluster.c index dac0614..7dbe1d2 100644 --- a/redis_cluster.c +++ b/redis_cluster.c @@ -993,6 +993,12 @@ PHP_METHOD(RedisCluster, sismember) { } /* }}} */ +/* {{{ proto array RedisCluster::smismember(string key, string member0, ...memberN) */ +PHP_METHOD(RedisCluster, smismember) { + CLUSTER_PROCESS_KW_CMD("SMISMEMBER", redis_key_varval_cmd, cluster_variant_resp, 1); +} +/* }}} */ + /* {{{ proto long RedisCluster::sadd(string key, string val1 [, ...]) */ PHP_METHOD(RedisCluster, sadd) { CLUSTER_PROCESS_KW_CMD("SADD", redis_key_varval_cmd, cluster_long_resp, 0); diff --git a/redis_cluster.stub.php b/redis_cluster.stub.php index 4ad8050..c8b9354 100644 --- a/redis_cluster.stub.php +++ b/redis_cluster.stub.php @@ -506,7 +506,7 @@ class RedisCluster { * which cluster node we want to send the command to. * @param string $sections Optional section(s) you wish Redis server to return. * - * @return Redis|array|false + * @return RedisCluster|array|false */ public function info(string|array $key_or_address, string ...$sections): RedisCluster|array|false; @@ -816,6 +816,11 @@ class RedisCluster { */ public function sismember(string $key, mixed $value): RedisCluster|bool; + /** + * @see Redis::smismember + */ + public function smismember(string $key, string $member, string ...$other_members): RedisCluster|array|false; + /** * @see Redis::slowlog */ @@ -945,7 +950,7 @@ class RedisCluster { /** * @see Redis::xautoclaim */ - public function xautoclaim(string $key, string $group, string $consumer, int $min_idle, string $start, int $count = -1, bool $justid = false): Redis|bool|array; + public function xautoclaim(string $key, string $group, string $consumer, int $min_idle, string $start, int $count = -1, bool $justid = false): RedisCluster|bool|array; /** * @see Redis::xinfo diff --git a/redis_cluster_arginfo.h b/redis_cluster_arginfo.h index 7312efb..b2c3fd8 100644 --- a/redis_cluster_arginfo.h +++ b/redis_cluster_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: 9a900fefb0ccb36638768a9d08909c68fff26c10 */ + * Stub hash: 6b0a73d60de6e892ecaaabfe5f69245ebf225fee */ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster___construct, 0, 0, 1) ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 1) @@ -676,6 +676,8 @@ ZEND_END_ARG_INFO() #define arginfo_class_RedisCluster_sismember arginfo_class_RedisCluster_setnx +#define arginfo_class_RedisCluster_smismember arginfo_class_RedisCluster_geohash + #define arginfo_class_RedisCluster_slowlog arginfo_class_RedisCluster_script #define arginfo_class_RedisCluster_smembers arginfo_class_RedisCluster_hgetall @@ -781,7 +783,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_xgroup, 0, 1, ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, entries_read, IS_LONG, 0, "-2") ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_xautoclaim, 0, 5, Redis, MAY_BE_BOOL|MAY_BE_ARRAY) +ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_xautoclaim, 0, 5, RedisCluster, MAY_BE_BOOL|MAY_BE_ARRAY) ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0) ZEND_ARG_TYPE_INFO(0, group, IS_STRING, 0) ZEND_ARG_TYPE_INFO(0, consumer, IS_STRING, 0) @@ -1111,6 +1113,7 @@ ZEND_METHOD(RedisCluster, sinter); ZEND_METHOD(RedisCluster, sintercard); ZEND_METHOD(RedisCluster, sinterstore); ZEND_METHOD(RedisCluster, sismember); +ZEND_METHOD(RedisCluster, smismember); ZEND_METHOD(RedisCluster, slowlog); ZEND_METHOD(RedisCluster, smembers); ZEND_METHOD(RedisCluster, smove); @@ -1322,6 +1325,7 @@ static const zend_function_entry class_RedisCluster_methods[] = { ZEND_ME(RedisCluster, sintercard, arginfo_class_RedisCluster_sintercard, ZEND_ACC_PUBLIC) ZEND_ME(RedisCluster, sinterstore, arginfo_class_RedisCluster_sinterstore, ZEND_ACC_PUBLIC) ZEND_ME(RedisCluster, sismember, arginfo_class_RedisCluster_sismember, ZEND_ACC_PUBLIC) + ZEND_ME(RedisCluster, smismember, arginfo_class_RedisCluster_smismember, ZEND_ACC_PUBLIC) ZEND_ME(RedisCluster, slowlog, arginfo_class_RedisCluster_slowlog, ZEND_ACC_PUBLIC) ZEND_ME(RedisCluster, smembers, arginfo_class_RedisCluster_smembers, ZEND_ACC_PUBLIC) ZEND_ME(RedisCluster, smove, arginfo_class_RedisCluster_smove, ZEND_ACC_PUBLIC) diff --git a/redis_cluster_legacy_arginfo.h b/redis_cluster_legacy_arginfo.h index 6238e43..890e7e3 100644 --- a/redis_cluster_legacy_arginfo.h +++ b/redis_cluster_legacy_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: 9a900fefb0ccb36638768a9d08909c68fff26c10 */ + * Stub hash: 6b0a73d60de6e892ecaaabfe5f69245ebf225fee */ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster___construct, 0, 0, 1) ZEND_ARG_INFO(0, name) @@ -572,6 +572,8 @@ ZEND_END_ARG_INFO() #define arginfo_class_RedisCluster_sismember arginfo_class_RedisCluster_append +#define arginfo_class_RedisCluster_smismember arginfo_class_RedisCluster_geohash + #define arginfo_class_RedisCluster_slowlog arginfo_class_RedisCluster_script #define arginfo_class_RedisCluster_smembers arginfo_class_RedisCluster__prefix @@ -962,6 +964,7 @@ ZEND_METHOD(RedisCluster, sinter); ZEND_METHOD(RedisCluster, sintercard); ZEND_METHOD(RedisCluster, sinterstore); ZEND_METHOD(RedisCluster, sismember); +ZEND_METHOD(RedisCluster, smismember); ZEND_METHOD(RedisCluster, slowlog); ZEND_METHOD(RedisCluster, smembers); ZEND_METHOD(RedisCluster, smove); @@ -1173,6 +1176,7 @@ static const zend_function_entry class_RedisCluster_methods[] = { ZEND_ME(RedisCluster, sintercard, arginfo_class_RedisCluster_sintercard, ZEND_ACC_PUBLIC) ZEND_ME(RedisCluster, sinterstore, arginfo_class_RedisCluster_sinterstore, ZEND_ACC_PUBLIC) ZEND_ME(RedisCluster, sismember, arginfo_class_RedisCluster_sismember, ZEND_ACC_PUBLIC) + ZEND_ME(RedisCluster, smismember, arginfo_class_RedisCluster_smismember, ZEND_ACC_PUBLIC) ZEND_ME(RedisCluster, slowlog, arginfo_class_RedisCluster_slowlog, ZEND_ACC_PUBLIC) ZEND_ME(RedisCluster, smembers, arginfo_class_RedisCluster_smembers, ZEND_ACC_PUBLIC) ZEND_ME(RedisCluster, smove, arginfo_class_RedisCluster_smove, ZEND_ACC_PUBLIC) diff --git a/tests/RedisClusterTest.php b/tests/RedisClusterTest.php index 6df481d..f1da085 100644 --- a/tests/RedisClusterTest.php +++ b/tests/RedisClusterTest.php @@ -53,7 +53,6 @@ class Redis_Cluster_Test extends Redis_Test { public function testlMove() { return $this->markTestSkipped(); } public function testlPos() { return $this->marktestSkipped(); } - public function testsMisMember() { return $this->markTestSkipped(); } public function testzDiff() { return $this->markTestSkipped(); } public function testzInter() { return $this->markTestSkipped(); } public function testzUnion() { return $this->markTestSkipped(); }