Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/phpredis/phpredis.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Grunder <michael.grunder@gmail.com>2022-10-12 23:16:43 +0300
committerGitHub <noreply@github.com>2022-10-12 23:16:43 +0300
commite392dd88dd89780633da3dd9ea6fb33dd187ff05 (patch)
treeea8c140e4ca536ef538159125a8dabf44b7e88b8
parent8b1eafe87abc62eb4705011b2a9192ee1db33696 (diff)
RedisCluster stub fixes (#2183)
RedisCluster stub fixes I can now run RedisCluster unit tests within a PHP build tree build in debug mode without any deprecation warnings or arginfo/zpp errors.
-rw-r--r--redis.stub.php5
-rw-r--r--redis_arginfo.h6
-rw-r--r--redis_cluster.c10
-rw-r--r--redis_cluster.stub.php320
-rw-r--r--redis_cluster_arginfo.h372
-rw-r--r--redis_cluster_legacy_arginfo.h97
-rw-r--r--redis_commands.c18
-rw-r--r--redis_legacy_arginfo.h2
-rw-r--r--tests/RedisClusterTest.php2
9 files changed, 453 insertions, 379 deletions
diff --git a/redis.stub.php b/redis.stub.php
index 81f5fe79..8cdede95 100644
--- a/redis.stub.php
+++ b/redis.stub.php
@@ -408,8 +408,7 @@ public function persist(string $key): bool;
public function select(int $db): Redis|bool;
- /** @return bool|Redis */
- public function set(string $key, mixed $value, mixed $opt = NULL);
+ public function set(string $key, mixed $value, mixed $opt = NULL): Redis|string|bool;
/** @return Redis|int|false*/
public function setBit(string $key, int $idx, bool $value);
@@ -432,7 +431,7 @@ public function persist(string $key): bool;
public function slowlog(string $mode, int $option = 0): mixed;
- public function sort(string $key, array $options = null): mixed;
+ public function sort(string $key, ?array $options = null): mixed;
/**
* @deprecated
diff --git a/redis_arginfo.h b/redis_arginfo.h
index c015689b..37241bbf 100644
--- a/redis_arginfo.h
+++ b/redis_arginfo.h
@@ -1,5 +1,5 @@
/* This is a generated file, edit the .stub.php file instead.
- * Stub hash: 6d0479328ae627b9c45104a52014b3649e533015 */
+ * Stub hash: 1810caef11b38440e073059e2d9c65f92fa8a9a5 */
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Redis___construct, 0, 0, 0)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_ARRAY, 0, "null")
@@ -744,7 +744,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_Redis_select, 0, 1, Re
ZEND_ARG_TYPE_INFO(0, db, IS_LONG, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Redis_set, 0, 0, 2)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_Redis_set, 0, 2, Redis, MAY_BE_STRING|MAY_BE_BOOL)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, opt, IS_MIXED, 0, "NULL")
@@ -788,7 +788,7 @@ ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_Redis_sort, 0, 1, IS_MIXED, 0)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
- ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_ARRAY, 0, "null")
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_ARRAY, 1, "null")
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_Redis_sortAsc, 0, 1, IS_ARRAY, 0)
diff --git a/redis_cluster.c b/redis_cluster.c
index 5dead3fa..cdd730ce 100644
--- a/redis_cluster.c
+++ b/redis_cluster.c
@@ -1844,6 +1844,16 @@ PHP_METHOD(RedisCluster, _redir) {
/* {{{ proto bool RedisCluster::multi() */
PHP_METHOD(RedisCluster, multi) {
redisCluster *c = GET_CONTEXT();
+ zend_long value = MULTI;
+
+ ZEND_PARSE_PARAMETERS_START(0, 1)
+ Z_PARAM_OPTIONAL
+ Z_PARAM_LONG(value)
+ ZEND_PARSE_PARAMETERS_END();
+
+ if (value != MULTI) {
+ php_error_docref(NULL, E_WARNING, "RedisCluster does not support PIPELINING");
+ }
if (c->flags->mode == MULTI) {
php_error_docref(NULL, E_WARNING,
diff --git a/redis_cluster.stub.php b/redis_cluster.stub.php
index 2a1faaf8..517ca4c8 100644
--- a/redis_cluster.stub.php
+++ b/redis_cluster.stub.php
@@ -30,21 +30,20 @@ class RedisCluster {
public function acl(string|array $key_or_address, string $subcmd, string ...$args): mixed;
- public function append(string $key, mixed $value): bool|int;
+ public function append(string $key, mixed $value): RedisCluster|bool|int;
- public function bgrewriteaof(string|array $key_or_address): bool;
+ public function bgrewriteaof(string|array $key_or_address): RedisCluster|bool;
- public function bgsave(string|array $key_or_address): bool;
+ public function bgsave(string|array $key_or_address): RedisCluster|bool;
- public function bitcount(string $key, int $start = 0, int $end = -1): bool|int;
+ public function bitcount(string $key, int $start = 0, int $end = -1, bool $bybit = false): RedisCluster|bool|int;
- public function bitop(string $operation, string $deskey, string $srckey, string ...$otherkeys): bool|int;
+ public function bitop(string $operation, string $deskey, string $srckey, string ...$otherkeys): RedisCluster|bool|int;
- public function bitpos(string $key, int $bit, int $start = NULL, int $end = NULL): bool|int;
+ public function bitpos(string $key, int $bit, int $start = NULL, int $end = NULL): RedisCluster|bool|int;
- public function blpop(string|array $key, string|int $timeout_or_key, mixed ...$extra_args): array;
-
- public function brpop(string|array $key, string|int $timeout_or_key, mixed ...$extra_args): array;
+ public function blpop(string|array $key, string|float|int $timeout_or_key, mixed ...$extra_args): RedisCluster|array|null|false;
+ public function brpop(string|array $key, string|float|int $timeout_or_key, mixed ...$extra_args): RedisCluster|array|null|false;
public function brpoplpush(string $srckey, string $deskey, int $timeout): mixed;
@@ -52,17 +51,17 @@ class RedisCluster {
public function bzpopmin(string|array $key, string|int $timeout_or_key, mixed ...$extra_args): array;
- public function bzmpop(float $timeout, array $keys, string $from, int $count = 1): Redis|array|null|false;
+ public function bzmpop(float $timeout, array $keys, string $from, int $count = 1): RedisCluster|array|null|false;
- public function zmpop(array $keys, string $from, int $count = 1): Redis|array|null|false;
+ public function zmpop(array $keys, string $from, int $count = 1): RedisCluster|array|null|false;
- public function blmpop(float $timeout, array $keys, string $from, int $count = 1): Redis|array|null|false;
+ public function blmpop(float $timeout, array $keys, string $from, int $count = 1): RedisCluster|array|null|false;
- public function lmpop(array $keys, string $from, int $count = 1): Redis|array|null|false;
+ public function lmpop(array $keys, string $from, int $count = 1): RedisCluster|array|null|false;
public function clearlasterror(): bool;
- public function client(string|array $node, string $subcommand, string|null $arg): array|string|bool;
+ public function client(string|array $node, string $subcommand, ?string $arg = NULL): array|string|bool;
public function close(): bool;
@@ -72,61 +71,61 @@ class RedisCluster {
public function config(string|array $node, string $subcommand, mixed ...$extra_args): mixed;
- public function dbsize(string|array $key_or_address): int;
+ public function dbsize(string|array $key_or_address): RedisCluster|int;
- public function decr(string $key): int;
+ public function decr(string $key, int $by = 1): RedisCluster|int|false;
- public function decrby(string $key, int $value): int;
+ public function decrby(string $key, int $value): RedisCluster|int|false;
public function decrbyfloat(string $key, float $value): float;
- public function del(string $key, string ...$other_keys): array;
+ public function del(array|string $key, string ...$other_keys): RedisCluster|int|false;
public function discard(): bool;
- public function dump(string $key): string;
+ public function dump(string $key): RedisCluster|string|false;
- public function echo(string|array $node, string $msg): string;
+ public function echo(string|array $node, string $msg): RedisCluster|string|false;
public function eval(string $script, array $args = [], int $num_keys = 0): mixed;
public function evalsha(string $script_sha, array $args = [], int $num_keys = 0): mixed;
- public function exec(): array;
+ public function exec(): array|false;
- public function exists(string $key): int;
+ public function exists(mixed $key, mixed ...$other_keys): RedisCluster|int|bool;
- public function expire(string $key, int $timeout): bool;
+ public function expire(string $key, int $timeout): RedisCluster|bool;
- public function expireat(string $key, int $timestamp): bool;
+ public function expireat(string $key, int $timestamp): RedisCluster|bool;
- public function expiretime(string $key): Redis|int|false;
+ public function expiretime(string $key): RedisCluster|int|false;
- public function pexpiretime(string $key): Redis|int|false;
+ public function pexpiretime(string $key): RedisCluster|int|false;
- public function flushall(string|array $node, bool $async = false): bool;
+ public function flushall(string|array $node, bool $async = false): RedisCluster|bool;
- public function flushdb(string|array $node, bool $async = false): bool;
+ public function flushdb(string|array $node, bool $async = false): RedisCluster|bool;
- public function geoadd(string $key, float $lng, float $lat, string $member, mixed ...$other_triples): int;
+ public function geoadd(string $key, float $lng, float $lat, string $member, mixed ...$other_triples): RedisCluster|int;
- public function geodist(string $key, string $src, string $dest, ?string $unit = null): array;
+ public function geodist(string $key, string $src, string $dest, ?string $unit = null): RedisCluster|float|false;
- public function geohash(string $key, string $member, string ...$other_members): array;
+ public function geohash(string $key, string $member, string ...$other_members): RedisCluster|array|false;
- public function geopos(string $key, string $member, string ...$other_members): array;
+ public function geopos(string $key, string $member, string ...$other_members): RedisCluster|array|false;
- public function georadius(string $key, float $lng, float $lat, float $radius, string $unit, array $options = []): array;
+ public function georadius(string $key, float $lng, float $lat, float $radius, string $unit, array $options = []): mixed;
- public function georadius_ro(string $key, float $lng, float $lat, float $radius, string $unit, array $options = []): array;
+ public function georadius_ro(string $key, float $lng, float $lat, float $radius, string $unit, array $options = []): mixed;
- public function georadiusbymember(string $key, string $member, float $radius, string $unit, array $options = []): array;
+ public function georadiusbymember(string $key, string $member, float $radius, string $unit, array $options = []): mixed;
- public function georadiusbymember_ro(string $key, string $member, float $radius, string $unit, array $options = []): array;
+ public function georadiusbymember_ro(string $key, string $member, float $radius, string $unit, array $options = []): mixed;
- public function get(string $key): string;
+ public function get(string $key): mixed;
- public function getbit(string $key, int $value): int;
+ public function getbit(string $key, int $value): RedisCluster|int|false;
public function getlasterror(): string|null;
@@ -134,279 +133,282 @@ class RedisCluster {
public function getoption(int $option): mixed;
- public function getrange(string $key, int $start, int $end): string;
+ public function getrange(string $key, int $start, int $end): RedisCluster|string|false;
- public function lcs(string $key1, string $key2, ?array $options = NULL): Redis|string|array|int|false;
+ public function lcs(string $key1, string $key2, ?array $options = NULL): RedisCluster|string|array|int|false;
- public function getset(string $key, mixed $value): string;
+ public function getset(string $key, mixed $value): RedisCluster|string|bool;
- public function hdel(string $key, string $member, string ...$other_members): int;
+ public function hdel(string $key, string $member, string ...$other_members): RedisCluster|int|false;
- public function hexists(string $key, string $member): bool;
+ public function hexists(string $key, string $member): RedisCluster|bool;
- public function hget(string $key, string $member): string;
+ public function hget(string $key, string $member): mixed;
- public function hgetall(string $key): array;
+ public function hgetall(string $key): RedisCluster|array|false;
- public function hincrby(string $key, string $member, int $value): int;
+ public function hincrby(string $key, string $member, int $value): RedisCluster|int|false;
- public function hincrbyfloat(string $key, string $member, float $value): float;
+ public function hincrbyfloat(string $key, string $member, float $value): RedisCluster|float|false;
- public function hkeys(string $key): array;
+ public function hkeys(string $key): RedisCluster|array|false;
- public function hlen(string $key): int;
+ public function hlen(string $key): RedisCluster|int|false;
- public function hmget(string $key, array $members): array;
+ public function hmget(string $key, array $keys): RedisCluster|array|false;
- public function hmset(string $key, array $key_values): bool;
+ public function hmset(string $key, array $key_values): RedisCluster|bool;
public function hscan(string $key, ?int &$iterator, ?string $pattern = null, int $count = 0): array|bool;
- public function hset(string $key, string $member, mixed $value): int;
+ public function hset(string $key, string $member, mixed $value): RedisCluster|int|false;
- public function hsetnx(string $key, string $member, mixed $value): bool;
+ public function hsetnx(string $key, string $member, mixed $value): RedisCluster|bool;
- public function hstrlen(string $key, string $field): int;
+ public function hstrlen(string $key, string $field): RedisCluster|int|false;
- public function hvals(string $key): array;
+ public function hvals(string $key): RedisCluster|array|false;
- public function incr(string $key): int;
+ public function incr(string $key, int $by = 1): RedisCluster|int|false;
- public function incrby(string $key, int $value): int;
+ public function incrby(string $key, int $value): RedisCluster|int|false;
- public function incrbyfloat(string $key, float $value): float;
+ public function incrbyfloat(string $key, float $value): RedisCluster|float|false;
- public function info(string|array $node, ?string $section = null): array;
+ public function info(string|array $node, ?string $section = null): RedisCluster|array|false;
- public function keys(string $pattern): array;
+ public function keys(string $pattern): RedisCluster|array|false;
- public function lastsave(string|array $node): int;
+ public function lastsave(string|array $node): RedisCluster|int|false;
- public function lget(string $key, int $index): string|bool;
+ public function lget(string $key, int $index): RedisCluster|string|bool;
- public function lindex(string $key, int $index): string|bool;
+ public function lindex(string $key, int $index): mixed;
- public function linsert(string $key, string $pos, mixed $pivot, mixed $value): int;
+ public function linsert(string $key, string $pos, mixed $pivot, mixed $value): RedisCluster|int|false;
- public function llen(string $key): int|bool;
+ public function llen(string $key): RedisCluster|int|bool;
- public function lpop(string $key, int $count = 0): bool|string|array;
+ public function lpop(string $key, int $count = 0): RedisCluster|bool|string|array;
- public function lpush(string $key, mixed $value, mixed ...$other_values): int|bool;
+ public function lpush(string $key, mixed $value, mixed ...$other_values): RedisCluster|int|bool;
- public function lpushx(string $key, mixed $value): int|bool;
+ public function lpushx(string $key, mixed $value): RedisCluster|int|bool;
- public function lrange(string $key, int $start, int $end): array;
+ public function lrange(string $key, int $start, int $end): RedisCluster|array|false;
- public function lrem(string $key, int $count, string $value): int|bool;
+ public function lrem(string $key, mixed $value, int $count = 0): RedisCluster|int|bool;
- public function lset(string $key, int $index, string $value): bool;
+ public function lset(string $key, int $index, mixed $value): RedisCluster|bool;
- public function ltrim(string $key, int $start, int $end): bool;
+ public function ltrim(string $key, int $start, int $end): RedisCluster|bool;
- public function mget(array $keys): array;
+ public function mget(array $keys): RedisCluster|array|false;
- public function mset(array $key_values): bool;
+ public function mset(array $key_values): RedisCluster|bool;
- public function msetnx(array $key_values): int;
+ public function msetnx(array $key_values): RedisCluster|array|false;
- public function multi(): RedisCluster|bool;
+ /* We only support Redis::MULTI in RedisCluster but take the argument
+ so we can test MULTI..EXEC with RedisTest.php and in the event
+ we add pipeline support in the future. */
+ public function multi(int $value = Redis::MULTI): RedisCluster|bool;
- public function object(string $subcommand, string $key): int|string;
+ public function object(string $subcommand, string $key): RedisCluster|int|string|false;
- public function persist(string $key): bool;
+ public function persist(string $key): RedisCluster|bool;
- public function pexpire(string $key, int $timeout): bool;
+ public function pexpire(string $key, int $timeout): RedisCluster|bool;
- public function pexpireat(string $key, int $timestamp): bool;
+ public function pexpireat(string $key, int $timestamp): RedisCluster|bool;
- public function pfadd(string $key, array $elements): bool;
+ public function pfadd(string $key, array $elements): RedisCluster|bool;
- public function pfcount(string $key): int;
+ public function pfcount(string $key): RedisCluster|int|false;
- public function pfmerge(string $key, array $keys): bool;
+ public function pfmerge(string $key, array $keys): RedisCluster|bool;
- public function ping(string|array $key_or_address, ?string $message): mixed;
+ public function ping(string|array $key_or_address, ?string $message = NULL): mixed;
- public function psetex(string $key, int $timeout, string $value): bool;
+ public function psetex(string $key, int $timeout, string $value): RedisCluster|bool;
public function psubscribe(array $patterns, callable $callback): void;
- public function pttl(string $key): int;
+ public function pttl(string $key): RedisCluster|int|false;
- public function publish(string $channel, string $message): bool;
+ public function publish(string $channel, string $message): RedisCluster|bool;
public function pubsub(string|array $key_or_address, string ...$values): mixed;
public function punsubscribe(string $pattern, string ...$other_patterns): bool|array;
- public function randomkey(string|array $key_or_address): bool|string;
+ public function randomkey(string|array $key_or_address): RedisCluster|bool|string;
public function rawcommand(string|array $key_or_address, string $command, mixed ...$args): mixed;
- public function rename(string $key, string $newkey): bool;
+ public function rename(string $key_src, string $key_dst): RedisCluster|bool;
- public function renamenx(string $key, string $newkey): bool;
+ public function renamenx(string $key, string $newkey): RedisCluster|bool;
- public function restore(string $key, int $timeout, string $value, ?array $options = NULL): bool;
+ public function restore(string $key, int $timeout, string $value, ?array $options = NULL): RedisCluster|bool;
public function role(string|array $key_or_address): mixed;
- public function rpop(string $key, int $count = 0): bool|string|array;
+ public function rpop(string $key, int $count = 0): RedisCluster|bool|string|array;
- public function rpoplpush(string $src, string $dst): bool|string;
+ public function rpoplpush(string $src, string $dst): RedisCluster|bool|string;
- public function rpush(string $key, string $value, string ...$other_values): bool|int;
+ public function rpush(string $key, mixed ...$elements): RedisCluster|int|false;
- public function rpushx(string $key, string $value): bool|int;
+ public function rpushx(string $key, string $value): RedisCluster|bool|int;
- public function sadd(string $key, string $value, string ...$other_values): bool|int;
+ public function sadd(string $key, mixed $value, mixed ...$other_values): RedisCluster|int|false;
- public function saddarray(string $key, array $values): bool|int;
+ public function saddarray(string $key, array $values): RedisCluster|bool|int;
- public function save(string|array $key_or_address): bool;
+ public function save(string|array $key_or_address): RedisCluster|bool;
public function scan(?int &$iterator, mixed $node, ?string $pattern = null, int $count = 0): bool|array;
- public function scard(string $key): int;
+ public function scard(string $key): RedisCluster|int|false;
public function script(string|array $key_or_address, mixed ...$args): mixed;
- public function sdiff(string $key, string ...$other_keys): array;
+ public function sdiff(string $key, string ...$other_keys): RedisCluster|array|false;
- public function sdiffstore(string $dst, string $key, string ...$other_keys): int;
+ public function sdiffstore(string $dst, string $key, string ...$other_keys): RedisCluster|int|false;
- public function set(string $key, string $value): bool;
+ public function set(string $key, mixed $value, mixed $options = NULL): RedisCluster|string|bool;
- public function setbit(string $key, int $offset, bool $onoff): bool;
+ public function setbit(string $key, int $offset, bool $onoff): RedisCluster|int|false;
- public function setex(string $key, string $value, int $timeout): bool;
+ public function setex(string $key, int $expire, mixed $value): RedisCluster|bool;
- public function setnx(string $key, string $value, int $timeout): bool;
+ public function setnx(string $key, mixed $value): RedisCluster|bool;
public function setoption(int $option, mixed $value): bool;
- public function setrange(string $key, int $offset, string $value): int;
+ public function setrange(string $key, int $offset, string $value): RedisCluster|int|false;
- public function sinter(string $key, string ...$other_keys): array;
+ public function sinter(array|string $key, string ...$other_keys): RedisCluster|array|false;
- public function sintercard(array $keys, int $limit = -1): Redis|int|false;
+ public function sintercard(array $keys, int $limit = -1): RedisCluster|int|false;
- public function sinterstore(string $dst, string $key, string ...$other_keys): bool;
+ public function sinterstore(array|string $key, string ...$other_keys): RedisCluster|int|false;
- public function sismember(string $key): int;
+ public function sismember(string $key, mixed $value): RedisCluster|bool;
public function slowlog(string|array $key_or_address, mixed ...$args): mixed;
- public function smembers(string $key): array;
+ public function smembers(string $key): RedisCluster|array|false;
- public function smove(string $src, string $dst, string $member): bool;
+ public function smove(string $src, string $dst, string $member): RedisCluster|bool;
- public function sort(string $key, array $options): bool|int|string;
+ public function sort(string $key, ?array $options = NULL): RedisCluster|array|bool|int|string;
- public function spop(string $key): string|array;
+ public function spop(string $key, int $count = 0): RedisCluster|string|array|false;
- public function srandmember(string $key, int $count = 0): string|array;
+ public function srandmember(string $key, int $count = 0): RedisCluster|string|array|false;
- public function srem(string $key, string $value, string ...$other_values): int;
+ public function srem(string $key, mixed $value, mixed ...$other_values): RedisCluster|int|false;
- public function sscan(string $key, ?int &$iterator, mixed $node, ?string $pattern = null, int $count = 0): bool|array;
+ public function sscan(string $key, ?int &$iterator, ?string $pattern = null, int $count = 0): array|false;
- public function strlen(string $key): int;
+ public function strlen(string $key): RedisCluster|int|false;
public function subscribe(array $channels, callable $cb): void;
- public function sunion(string $key, string ...$other_keys): bool|array;
+ public function sunion(string $key, string ...$other_keys): RedisCluster|bool|array;
- public function sunionstore(string $dst, string $key, string ...$other_keys): int;
+ public function sunionstore(string $dst, string $key, string ...$other_keys): RedisCluster|int|false;
- public function time(string|array $key_or_address): bool|array;
+ public function time(string|array $key_or_address): RedisCluster|bool|array;
- public function ttl(string $key): int;
+ public function ttl(string $key): RedisCluster|int|false;
- public function type(string $key): int;
+ public function type(string $key): RedisCluster|int|false;
public function unsubscribe(array $channels): bool|array;
- public function unlink(string $key, string ...$other_keys): array;
+ public function unlink(array|string $key, string ...$other_keys): RedisCluster|int|false;
public function unwatch(): bool;
- public function watch(string $key, string ...$other_keys): bool;
+ public function watch(string $key, string ...$other_keys): RedisCluster|bool;
- public function xack(string $key, string $group, array $ids): int;
+ public function xack(string $key, string $group, array $ids): RedisCluster|int|false;
- public function xadd(string $key, string $id, array $values, int $maxlen = 0, bool $approx = false): string;
+ public function xadd(string $key, string $id, array $values, int $maxlen = 0, bool $approx = false): RedisCluster|string|false;
- public function xclaim(string $key, string $group, string $consumer, int $min_iddle, array $ids, array $options): string|array;
+ public function xclaim(string $key, string $group, string $consumer, int $min_iddle, array $ids, array $options): RedisCluster|string|array|false;
- public function xdel(string $key, array $ids): int;
+ public function xdel(string $key, array $ids): RedisCluster|int|false;
public function xgroup(string $operation, string $key = null, string $arg1 = null, string $arg2 = null, bool $arg3 = false): mixed;
public function xinfo(string $operation, ?string $arg1 = null, ?string $arg2 = null, int $count = -1): mixed;
- public function xlen(string $key): int;
+ public function xlen(string $key): RedisCluster|int|false;
- public function xpending(string $key, string $group, ?string $start = null, ?string $end = null, int $count = -1, ?string $consumer = null): Redis|array|false;
+ public function xpending(string $key, string $group, ?string $start = null, ?string $end = null, int $count = -1, ?string $consumer = null): RedisCluster|array|false;
- public function xrange(string $key, string $start, string $end, int $count = -1): bool|array;
+ public function xrange(string $key, string $start, string $end, int $count = -1): RedisCluster|bool|array;
- public function xread(array $streams, int $count = -1, int $block = -1): bool|array;
+ public function xread(array $streams, int $count = -1, int $block = -1): RedisCluster|bool|array;
- public function xreadgroup(string $group, string $consumer, array $streams, int $count = 1, int $block = 1): bool|array;
+ public function xreadgroup(string $group, string $consumer, array $streams, int $count = 1, int $block = 1): RedisCluster|bool|array;
- public function xrevrange(string $key, string $start, string $end, int $count = -1): bool|array;
+ public function xrevrange(string $key, string $start, string $end, int $count = -1): RedisCluster|bool|array;
public function xtrim(string $key, int $maxlen, bool $approx = false, bool $minid = false, int $limit = -1): RedisCluster|int|false;
- public function zadd(string $key, float $score, string $member, mixed ...$extra_args): int;
+ public function zadd(string $key, array|float $score_or_options, mixed ...$more_scores_and_mems): RedisCluster|int|false;
- public function zcard(string $key): int;
+ public function zcard(string $key): RedisCluster|int|false;
- public function zcount(string $key, string $start, string $end): int;
+ public function zcount(string $key, string $start, string $end): RedisCluster|int|false;
- public function zincrby(string $key, float $value, string $member): float;
+ public function zincrby(string $key, float $value, string $member): RedisCluster|float|false;
- public function zinterstore(string $key, array $keys, array $weights = null, string $aggregate = null): int;
+ public function zinterstore(string $dst, array $keys, ?array $weights = null, ?string $aggregate = null): RedisCluster|int|false;
- public function zintercard(array $keys, int $limit = -1): Redis|int|false;
+ public function zintercard(array $keys, int $limit = -1): RedisCluster|int|false;
- public function zlexcount(string $key, string $min, string $max): int;
+ public function zlexcount(string $key, string $min, string $max): RedisCluster|int|false;
- public function zpopmax(string $key, int $value = null): bool|array;
+ public function zpopmax(string $key, int $value = null): RedisCluster|bool|array;
- public function zpopmin(string $key, int $value = null): bool|array;
+ public function zpopmin(string $key, int $value = null): RedisCluster|bool|array;
- public function zrange(string $key, int $start, int $end, array $options = null): bool|array;
+ public function zrange(string $key, int $start, int $end, mixed $options_withscores = null): RedisCluster|array|bool;
- public function zrangebylex(string $key, int $start, int $end, array $options = null): bool|array;
+ public function zrangebylex(string $key, string $min, string $max, int $offset = -1, int $count = -1): RedisCluster|array|false;
- public function zrangebyscore(string $key, int $start, int $end, array $options = null): bool|array;
+ public function zrangebyscore(string $key, string $start, string $end, array $options = []): RedisCluster|array|false;
- public function zrank(string $key, mixed $member): int;
+ public function zrank(string $key, mixed $member): RedisCluster|int|false;
- public function zrem(string $key, string $value, string ...$other_values): int;
+ public function zrem(string $key, string $value, string ...$other_values): RedisCluster|int|false;
- public function zremrangebylex(string $key, string $min, string $max): int;
+ public function zremrangebylex(string $key, string $min, string $max): RedisCluster|int|false;
- public function zremrangebyrank(string $key, string $min, string $max): int;
+ public function zremrangebyrank(string $key, string $min, string $max): RedisCluster|int|false;
- public function zremrangebyscore(string $key, string $min, string $max): int;
+ public function zremrangebyscore(string $key, string $min, string $max): RedisCluster|int|false;
- public function zrevrange(string $key, string $min, string $max, array $options = null): bool|array;
+ public function zrevrange(string $key, string $min, string $max, array $options = null): RedisCluster|bool|array;
- public function zrevrangebylex(string $key, string $min, string $max, array $options = null): bool|array;
+ public function zrevrangebylex(string $key, string $min, string $max, array $options = null): RedisCluster|bool|array;
- public function zrevrangebyscore(string $key, string $min, string $max, array $options = null): bool|array;
+ public function zrevrangebyscore(string $key, string $min, string $max, array $options = null): RedisCluster|bool|array;
- public function zrevrank(string $key, mixed $member): int;
+ public function zrevrank(string $key, mixed $member): RedisCluster|int|false;
- public function zscan(string $key, ?int &$iterator, ?string $pattern = null, int $count = 0): bool|array;
+ public function zscan(string $key, ?int &$iterator, ?string $pattern = null, int $count = 0): RedisCluster|bool|array;
- public function zscore(string $key): float;
+ public function zscore(string $key, mixed $member): RedisCluster|float|false;
- public function zunionstore(string $key, array $keys, array $weights = null, string $aggregate = null): int;
+ public function zunionstore(string $dst, array $keys, ?array $weights = NULL, ?string $aggregate = NULL): RedisCluster|int|false;
}
class RedisClusterException extends RuntimeException {}
diff --git a/redis_cluster_arginfo.h b/redis_cluster_arginfo.h
index 1052db1e..4b02f3e6 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: 59682d20ee8ebad4f8a5c914432f41dac0860770 */
+ * Stub hash: 280323a9e3fc028641ad1d8bcba2514dfa90fac9 */
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster___construct, 0, 0, 1)
ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 1)
@@ -47,40 +47,41 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_acl, 0, 2, IS
ZEND_ARG_VARIADIC_TYPE_INFO(0, args, IS_STRING, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_append, 0, 2, MAY_BE_BOOL|MAY_BE_LONG)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_append, 0, 2, RedisCluster, MAY_BE_BOOL|MAY_BE_LONG)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_bgrewriteaof, 0, 1, _IS_BOOL, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_bgrewriteaof, 0, 1, RedisCluster, MAY_BE_BOOL)
ZEND_ARG_TYPE_MASK(0, key_or_address, MAY_BE_STRING|MAY_BE_ARRAY, NULL)
ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_bgsave arginfo_class_RedisCluster_bgrewriteaof
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_bitcount, 0, 1, MAY_BE_BOOL|MAY_BE_LONG)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_bitcount, 0, 1, RedisCluster, MAY_BE_BOOL|MAY_BE_LONG)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, start, IS_LONG, 0, "0")
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, end, IS_LONG, 0, "-1")
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, bybit, _IS_BOOL, 0, "false")
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_bitop, 0, 3, MAY_BE_BOOL|MAY_BE_LONG)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_bitop, 0, 3, RedisCluster, MAY_BE_BOOL|MAY_BE_LONG)
ZEND_ARG_TYPE_INFO(0, operation, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, deskey, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, srckey, IS_STRING, 0)
ZEND_ARG_VARIADIC_TYPE_INFO(0, otherkeys, IS_STRING, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_bitpos, 0, 2, MAY_BE_BOOL|MAY_BE_LONG)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_bitpos, 0, 2, RedisCluster, MAY_BE_BOOL|MAY_BE_LONG)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, bit, IS_LONG, 0)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, start, IS_LONG, 0, "NULL")
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, end, IS_LONG, 0, "NULL")
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_blpop, 0, 2, IS_ARRAY, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_blpop, 0, 2, RedisCluster, MAY_BE_ARRAY|MAY_BE_NULL|MAY_BE_FALSE)
ZEND_ARG_TYPE_MASK(0, key, MAY_BE_STRING|MAY_BE_ARRAY, NULL)
- ZEND_ARG_TYPE_MASK(0, timeout_or_key, MAY_BE_STRING|MAY_BE_LONG, NULL)
+ ZEND_ARG_TYPE_MASK(0, timeout_or_key, MAY_BE_STRING|MAY_BE_DOUBLE|MAY_BE_LONG, NULL)
ZEND_ARG_VARIADIC_TYPE_INFO(0, extra_args, IS_MIXED, 0)
ZEND_END_ARG_INFO()
@@ -92,18 +93,22 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_brpoplpush, 0
ZEND_ARG_TYPE_INFO(0, timeout, IS_LONG, 0)
ZEND_END_ARG_INFO()
-#define arginfo_class_RedisCluster_bzpopmax arginfo_class_RedisCluster_blpop
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_bzpopmax, 0, 2, IS_ARRAY, 0)
+ ZEND_ARG_TYPE_MASK(0, key, MAY_BE_STRING|MAY_BE_ARRAY, NULL)
+ ZEND_ARG_TYPE_MASK(0, timeout_or_key, MAY_BE_STRING|MAY_BE_LONG, NULL)
+ ZEND_ARG_VARIADIC_TYPE_INFO(0, extra_args, IS_MIXED, 0)
+ZEND_END_ARG_INFO()
-#define arginfo_class_RedisCluster_bzpopmin arginfo_class_RedisCluster_blpop
+#define arginfo_class_RedisCluster_bzpopmin arginfo_class_RedisCluster_bzpopmax
-ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_bzmpop, 0, 3, Redis, MAY_BE_ARRAY|MAY_BE_NULL|MAY_BE_FALSE)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_bzmpop, 0, 3, RedisCluster, MAY_BE_ARRAY|MAY_BE_NULL|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, timeout, IS_DOUBLE, 0)
ZEND_ARG_TYPE_INFO(0, keys, IS_ARRAY, 0)
ZEND_ARG_TYPE_INFO(0, from, IS_STRING, 0)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, count, IS_LONG, 0, "1")
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_zmpop, 0, 2, Redis, MAY_BE_ARRAY|MAY_BE_NULL|MAY_BE_FALSE)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_zmpop, 0, 2, RedisCluster, MAY_BE_ARRAY|MAY_BE_NULL|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, keys, IS_ARRAY, 0)
ZEND_ARG_TYPE_INFO(0, from, IS_STRING, 0)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, count, IS_LONG, 0, "1")
@@ -116,10 +121,10 @@ ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_clearlasterror, 0, 0, _IS_BOOL, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_client, 0, 3, MAY_BE_ARRAY|MAY_BE_STRING|MAY_BE_BOOL)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_client, 0, 2, MAY_BE_ARRAY|MAY_BE_STRING|MAY_BE_BOOL)
ZEND_ARG_TYPE_MASK(0, node, MAY_BE_STRING|MAY_BE_ARRAY, NULL)
ZEND_ARG_TYPE_INFO(0, subcommand, IS_STRING, 0)
- ZEND_ARG_TYPE_INFO(0, arg, IS_STRING, 1)
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, arg, IS_STRING, 1, "NULL")
ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_close arginfo_class_RedisCluster_clearlasterror
@@ -140,15 +145,16 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_config, 0, 2,
ZEND_ARG_VARIADIC_TYPE_INFO(0, extra_args, IS_MIXED, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_dbsize, 0, 1, IS_LONG, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_dbsize, 0, 1, RedisCluster, MAY_BE_LONG)
ZEND_ARG_TYPE_MASK(0, key_or_address, MAY_BE_STRING|MAY_BE_ARRAY, NULL)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_decr, 0, 1, IS_LONG, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_decr, 0, 1, RedisCluster, MAY_BE_LONG|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, by, IS_LONG, 0, "1")
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_decrby, 0, 2, IS_LONG, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_decrby, 0, 2, RedisCluster, MAY_BE_LONG|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, value, IS_LONG, 0)
ZEND_END_ARG_INFO()
@@ -158,18 +164,18 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_decrbyfloat,
ZEND_ARG_TYPE_INFO(0, value, IS_DOUBLE, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_del, 0, 1, IS_ARRAY, 0)
- ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_del, 0, 1, RedisCluster, MAY_BE_LONG|MAY_BE_FALSE)
+ ZEND_ARG_TYPE_MASK(0, key, MAY_BE_ARRAY|MAY_BE_STRING, NULL)
ZEND_ARG_VARIADIC_TYPE_INFO(0, other_keys, IS_STRING, 0)
ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_discard arginfo_class_RedisCluster_clearlasterror
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_dump, 0, 1, IS_STRING, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_dump, 0, 1, RedisCluster, MAY_BE_STRING|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_echo, 0, 2, IS_STRING, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_echo, 0, 2, RedisCluster, MAY_BE_STRING|MAY_BE_FALSE)
ZEND_ARG_TYPE_MASK(0, node, MAY_BE_STRING|MAY_BE_ARRAY, NULL)
ZEND_ARG_TYPE_INFO(0, msg, IS_STRING, 0)
ZEND_END_ARG_INFO()
@@ -186,34 +192,38 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_evalsha, 0, 1
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, num_keys, IS_LONG, 0, "0")
ZEND_END_ARG_INFO()
-#define arginfo_class_RedisCluster_exec arginfo_class_RedisCluster__masters
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_exec, 0, 0, MAY_BE_ARRAY|MAY_BE_FALSE)
+ZEND_END_ARG_INFO()
-#define arginfo_class_RedisCluster_exists arginfo_class_RedisCluster_decr
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_exists, 0, 1, RedisCluster, MAY_BE_LONG|MAY_BE_BOOL)
+ ZEND_ARG_TYPE_INFO(0, key, IS_MIXED, 0)
+ ZEND_ARG_VARIADIC_TYPE_INFO(0, other_keys, IS_MIXED, 0)
+ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_expire, 0, 2, _IS_BOOL, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_expire, 0, 2, RedisCluster, MAY_BE_BOOL)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, timeout, IS_LONG, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_expireat, 0, 2, _IS_BOOL, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_expireat, 0, 2, RedisCluster, MAY_BE_BOOL)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, timestamp, IS_LONG, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_expiretime, 0, 1, Redis, MAY_BE_LONG|MAY_BE_FALSE)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_expiretime, 0, 1, RedisCluster, MAY_BE_LONG|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_pexpiretime arginfo_class_RedisCluster_expiretime
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_flushall, 0, 1, _IS_BOOL, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_flushall, 0, 1, RedisCluster, MAY_BE_BOOL)
ZEND_ARG_TYPE_MASK(0, node, MAY_BE_STRING|MAY_BE_ARRAY, NULL)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, async, _IS_BOOL, 0, "false")
ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_flushdb arginfo_class_RedisCluster_flushall
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_geoadd, 0, 4, IS_LONG, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_geoadd, 0, 4, RedisCluster, MAY_BE_LONG)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, lng, IS_DOUBLE, 0)
ZEND_ARG_TYPE_INFO(0, lat, IS_DOUBLE, 0)
@@ -221,14 +231,14 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_geoadd, 0, 4,
ZEND_ARG_VARIADIC_TYPE_INFO(0, other_triples, IS_MIXED, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_geodist, 0, 3, IS_ARRAY, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_geodist, 0, 3, RedisCluster, MAY_BE_DOUBLE|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, src, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, dest, IS_STRING, 0)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, unit, IS_STRING, 1, "null")
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_geohash, 0, 2, IS_ARRAY, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_geohash, 0, 2, RedisCluster, MAY_BE_ARRAY|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, member, IS_STRING, 0)
ZEND_ARG_VARIADIC_TYPE_INFO(0, other_members, IS_STRING, 0)
@@ -236,7 +246,7 @@ ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_geopos arginfo_class_RedisCluster_geohash
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_georadius, 0, 5, IS_ARRAY, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_georadius, 0, 5, IS_MIXED, 0)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, lng, IS_DOUBLE, 0)
ZEND_ARG_TYPE_INFO(0, lat, IS_DOUBLE, 0)
@@ -247,7 +257,7 @@ ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_georadius_ro arginfo_class_RedisCluster_georadius
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_georadiusbymember, 0, 4, IS_ARRAY, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_georadiusbymember, 0, 4, IS_MIXED, 0)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, member, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, radius, IS_DOUBLE, 0)
@@ -257,7 +267,9 @@ ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_georadiusbymember_ro arginfo_class_RedisCluster_georadiusbymember
-#define arginfo_class_RedisCluster_get arginfo_class_RedisCluster_dump
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_get, 0, 1, IS_MIXED, 0)
+ ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
+ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_getbit arginfo_class_RedisCluster_decrby
@@ -270,50 +282,50 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_getoption, 0,
ZEND_ARG_TYPE_INFO(0, option, IS_LONG, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_getrange, 0, 3, IS_STRING, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_getrange, 0, 3, RedisCluster, MAY_BE_STRING|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, start, IS_LONG, 0)
ZEND_ARG_TYPE_INFO(0, end, IS_LONG, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_lcs, 0, 2, Redis, MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_LONG|MAY_BE_FALSE)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_lcs, 0, 2, RedisCluster, MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_LONG|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key1, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, key2, IS_STRING, 0)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_ARRAY, 1, "NULL")
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_getset, 0, 2, IS_STRING, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_getset, 0, 2, RedisCluster, MAY_BE_STRING|MAY_BE_BOOL)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_hdel, 0, 2, IS_LONG, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_hdel, 0, 2, RedisCluster, MAY_BE_LONG|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, member, IS_STRING, 0)
ZEND_ARG_VARIADIC_TYPE_INFO(0, other_members, IS_STRING, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_hexists, 0, 2, _IS_BOOL, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_hexists, 0, 2, RedisCluster, MAY_BE_BOOL)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, member, IS_STRING, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_hget, 0, 2, IS_STRING, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_hget, 0, 2, IS_MIXED, 0)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, member, IS_STRING, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_hgetall, 0, 1, IS_ARRAY, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_hgetall, 0, 1, RedisCluster, MAY_BE_ARRAY|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_hincrby, 0, 3, IS_LONG, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_hincrby, 0, 3, RedisCluster, MAY_BE_LONG|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, member, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, value, IS_LONG, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_hincrbyfloat, 0, 3, IS_DOUBLE, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_hincrbyfloat, 0, 3, RedisCluster, MAY_BE_DOUBLE|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, member, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, value, IS_DOUBLE, 0)
@@ -321,14 +333,14 @@ ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_hkeys arginfo_class_RedisCluster_hgetall
-#define arginfo_class_RedisCluster_hlen arginfo_class_RedisCluster_decr
+#define arginfo_class_RedisCluster_hlen arginfo_class_RedisCluster_expiretime
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_hmget, 0, 2, IS_ARRAY, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_hmget, 0, 2, RedisCluster, MAY_BE_ARRAY|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
- ZEND_ARG_TYPE_INFO(0, members, IS_ARRAY, 0)
+ ZEND_ARG_TYPE_INFO(0, keys, IS_ARRAY, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_hmset, 0, 2, _IS_BOOL, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_hmset, 0, 2, RedisCluster, MAY_BE_BOOL)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, key_values, IS_ARRAY, 0)
ZEND_END_ARG_INFO()
@@ -340,19 +352,19 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_hscan, 0, 2,
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, count, IS_LONG, 0, "0")
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_hset, 0, 3, IS_LONG, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_hset, 0, 3, RedisCluster, MAY_BE_LONG|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, member, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_hsetnx, 0, 3, _IS_BOOL, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_hsetnx, 0, 3, RedisCluster, MAY_BE_BOOL)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, member, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_hstrlen, 0, 2, IS_LONG, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_hstrlen, 0, 2, RedisCluster, MAY_BE_LONG|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, field, IS_STRING, 0)
ZEND_END_ARG_INFO()
@@ -363,100 +375,107 @@ ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_incrby arginfo_class_RedisCluster_decrby
-#define arginfo_class_RedisCluster_incrbyfloat arginfo_class_RedisCluster_decrbyfloat
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_incrbyfloat, 0, 2, RedisCluster, MAY_BE_DOUBLE|MAY_BE_FALSE)
+ ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, value, IS_DOUBLE, 0)
+ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_info, 0, 1, IS_ARRAY, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_info, 0, 1, RedisCluster, MAY_BE_ARRAY|MAY_BE_FALSE)
ZEND_ARG_TYPE_MASK(0, node, MAY_BE_STRING|MAY_BE_ARRAY, NULL)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, section, IS_STRING, 1, "null")
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_keys, 0, 1, IS_ARRAY, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_keys, 0, 1, RedisCluster, MAY_BE_ARRAY|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, pattern, IS_STRING, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_lastsave, 0, 1, IS_LONG, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_lastsave, 0, 1, RedisCluster, MAY_BE_LONG|MAY_BE_FALSE)
ZEND_ARG_TYPE_MASK(0, node, MAY_BE_STRING|MAY_BE_ARRAY, NULL)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_lget, 0, 2, MAY_BE_STRING|MAY_BE_BOOL)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_lget, 0, 2, RedisCluster, MAY_BE_STRING|MAY_BE_BOOL)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, index, IS_LONG, 0)
ZEND_END_ARG_INFO()
-#define arginfo_class_RedisCluster_lindex arginfo_class_RedisCluster_lget
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_lindex, 0, 2, IS_MIXED, 0)
+ ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, index, IS_LONG, 0)
+ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_linsert, 0, 4, IS_LONG, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_linsert, 0, 4, RedisCluster, MAY_BE_LONG|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, pos, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, pivot, IS_MIXED, 0)
ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_llen, 0, 1, MAY_BE_LONG|MAY_BE_BOOL)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_llen, 0, 1, RedisCluster, MAY_BE_LONG|MAY_BE_BOOL)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_lpop, 0, 1, MAY_BE_BOOL|MAY_BE_STRING|MAY_BE_ARRAY)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_lpop, 0, 1, RedisCluster, MAY_BE_BOOL|MAY_BE_STRING|MAY_BE_ARRAY)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, count, IS_LONG, 0, "0")
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_lpush, 0, 2, MAY_BE_LONG|MAY_BE_BOOL)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_lpush, 0, 2, RedisCluster, MAY_BE_LONG|MAY_BE_BOOL)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0)
ZEND_ARG_VARIADIC_TYPE_INFO(0, other_values, IS_MIXED, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_lpushx, 0, 2, MAY_BE_LONG|MAY_BE_BOOL)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_lpushx, 0, 2, RedisCluster, MAY_BE_LONG|MAY_BE_BOOL)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_lrange, 0, 3, IS_ARRAY, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_lrange, 0, 3, RedisCluster, MAY_BE_ARRAY|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, start, IS_LONG, 0)
ZEND_ARG_TYPE_INFO(0, end, IS_LONG, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_lrem, 0, 3, MAY_BE_LONG|MAY_BE_BOOL)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_lrem, 0, 2, RedisCluster, MAY_BE_LONG|MAY_BE_BOOL)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
- ZEND_ARG_TYPE_INFO(0, count, IS_LONG, 0)
- ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0)
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, count, IS_LONG, 0, "0")
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_lset, 0, 3, _IS_BOOL, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_lset, 0, 3, RedisCluster, MAY_BE_BOOL)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, index, IS_LONG, 0)
- ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_ltrim, 0, 3, _IS_BOOL, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_ltrim, 0, 3, RedisCluster, MAY_BE_BOOL)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, start, IS_LONG, 0)
ZEND_ARG_TYPE_INFO(0, end, IS_LONG, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_mget, 0, 1, IS_ARRAY, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_mget, 0, 1, RedisCluster, MAY_BE_ARRAY|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, keys, IS_ARRAY, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_mset, 0, 1, _IS_BOOL, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_mset, 0, 1, RedisCluster, MAY_BE_BOOL)
ZEND_ARG_TYPE_INFO(0, key_values, IS_ARRAY, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_msetnx, 0, 1, IS_LONG, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_msetnx, 0, 1, RedisCluster, MAY_BE_ARRAY|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key_values, IS_ARRAY, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_multi, 0, 0, RedisCluster, MAY_BE_BOOL)
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, value, IS_LONG, 0, "Redis::MULTI")
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_object, 0, 2, MAY_BE_LONG|MAY_BE_STRING)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_object, 0, 2, RedisCluster, MAY_BE_LONG|MAY_BE_STRING|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, subcommand, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_persist, 0, 1, _IS_BOOL, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_persist, 0, 1, RedisCluster, MAY_BE_BOOL)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_END_ARG_INFO()
@@ -464,24 +483,24 @@ ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_pexpireat arginfo_class_RedisCluster_expireat
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_pfadd, 0, 2, _IS_BOOL, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_pfadd, 0, 2, RedisCluster, MAY_BE_BOOL)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, elements, IS_ARRAY, 0)
ZEND_END_ARG_INFO()
-#define arginfo_class_RedisCluster_pfcount arginfo_class_RedisCluster_decr
+#define arginfo_class_RedisCluster_pfcount arginfo_class_RedisCluster_expiretime
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_pfmerge, 0, 2, _IS_BOOL, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_pfmerge, 0, 2, RedisCluster, MAY_BE_BOOL)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, keys, IS_ARRAY, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_ping, 0, 2, IS_MIXED, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_ping, 0, 1, IS_MIXED, 0)
ZEND_ARG_TYPE_MASK(0, key_or_address, MAY_BE_STRING|MAY_BE_ARRAY, NULL)
- ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 1)
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, message, IS_STRING, 1, "NULL")
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_psetex, 0, 3, _IS_BOOL, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_psetex, 0, 3, RedisCluster, MAY_BE_BOOL)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, timeout, IS_LONG, 0)
ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0)
@@ -492,9 +511,9 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_psubscribe, 0
ZEND_ARG_TYPE_INFO(0, callback, IS_CALLABLE, 0)
ZEND_END_ARG_INFO()
-#define arginfo_class_RedisCluster_pttl arginfo_class_RedisCluster_decr
+#define arginfo_class_RedisCluster_pttl arginfo_class_RedisCluster_expiretime
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_publish, 0, 2, _IS_BOOL, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_publish, 0, 2, RedisCluster, MAY_BE_BOOL)
ZEND_ARG_TYPE_INFO(0, channel, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0)
ZEND_END_ARG_INFO()
@@ -509,7 +528,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_punsubscribe,
ZEND_ARG_VARIADIC_TYPE_INFO(0, other_patterns, IS_STRING, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_randomkey, 0, 1, MAY_BE_BOOL|MAY_BE_STRING)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_randomkey, 0, 1, RedisCluster, MAY_BE_BOOL|MAY_BE_STRING)
ZEND_ARG_TYPE_MASK(0, key_or_address, MAY_BE_STRING|MAY_BE_ARRAY, NULL)
ZEND_END_ARG_INFO()
@@ -519,14 +538,17 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_rawcommand, 0
ZEND_ARG_VARIADIC_TYPE_INFO(0, args, IS_MIXED, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_rename, 0, 2, _IS_BOOL, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_rename, 0, 2, RedisCluster, MAY_BE_BOOL)
+ ZEND_ARG_TYPE_INFO(0, key_src, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, key_dst, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_renamenx, 0, 2, RedisCluster, MAY_BE_BOOL)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, newkey, IS_STRING, 0)
ZEND_END_ARG_INFO()
-#define arginfo_class_RedisCluster_renamenx arginfo_class_RedisCluster_rename
-
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_restore, 0, 3, _IS_BOOL, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_restore, 0, 3, RedisCluster, MAY_BE_BOOL)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, timeout, IS_LONG, 0)
ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0)
@@ -539,25 +561,28 @@ ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_rpop arginfo_class_RedisCluster_lpop
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_rpoplpush, 0, 2, MAY_BE_BOOL|MAY_BE_STRING)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_rpoplpush, 0, 2, RedisCluster, MAY_BE_BOOL|MAY_BE_STRING)
ZEND_ARG_TYPE_INFO(0, src, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, dst, IS_STRING, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_rpush, 0, 2, MAY_BE_BOOL|MAY_BE_LONG)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_rpush, 0, 1, RedisCluster, MAY_BE_LONG|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
- ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0)
- ZEND_ARG_VARIADIC_TYPE_INFO(0, other_values, IS_STRING, 0)
+ ZEND_ARG_VARIADIC_TYPE_INFO(0, elements, IS_MIXED, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_rpushx, 0, 2, MAY_BE_BOOL|MAY_BE_LONG)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_rpushx, 0, 2, RedisCluster, MAY_BE_BOOL|MAY_BE_LONG)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0)
ZEND_END_ARG_INFO()
-#define arginfo_class_RedisCluster_sadd arginfo_class_RedisCluster_rpush
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_sadd, 0, 2, RedisCluster, MAY_BE_LONG|MAY_BE_FALSE)
+ ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0)
+ ZEND_ARG_VARIADIC_TYPE_INFO(0, other_values, IS_MIXED, 0)
+ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_saddarray, 0, 2, MAY_BE_BOOL|MAY_BE_LONG)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_saddarray, 0, 2, RedisCluster, MAY_BE_BOOL|MAY_BE_LONG)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, values, IS_ARRAY, 0)
ZEND_END_ARG_INFO()
@@ -571,125 +596,124 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_scan, 0, 2, M
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, count, IS_LONG, 0, "0")
ZEND_END_ARG_INFO()
-#define arginfo_class_RedisCluster_scard arginfo_class_RedisCluster_decr
+#define arginfo_class_RedisCluster_scard arginfo_class_RedisCluster_expiretime
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_script, 0, 1, IS_MIXED, 0)
ZEND_ARG_TYPE_MASK(0, key_or_address, MAY_BE_STRING|MAY_BE_ARRAY, NULL)
ZEND_ARG_VARIADIC_TYPE_INFO(0, args, IS_MIXED, 0)
ZEND_END_ARG_INFO()
-#define arginfo_class_RedisCluster_sdiff arginfo_class_RedisCluster_del
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_sdiff, 0, 1, RedisCluster, MAY_BE_ARRAY|MAY_BE_FALSE)
+ ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
+ ZEND_ARG_VARIADIC_TYPE_INFO(0, other_keys, IS_STRING, 0)
+ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_sdiffstore, 0, 2, IS_LONG, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_sdiffstore, 0, 2, RedisCluster, MAY_BE_LONG|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, dst, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_VARIADIC_TYPE_INFO(0, other_keys, IS_STRING, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_set, 0, 2, _IS_BOOL, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_set, 0, 2, RedisCluster, MAY_BE_STRING|MAY_BE_BOOL)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
- ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0)
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_MIXED, 0, "NULL")
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_setbit, 0, 3, _IS_BOOL, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_setbit, 0, 3, RedisCluster, MAY_BE_LONG|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, offset, IS_LONG, 0)
ZEND_ARG_TYPE_INFO(0, onoff, _IS_BOOL, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_setex, 0, 3, _IS_BOOL, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_setex, 0, 3, RedisCluster, MAY_BE_BOOL)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
- ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0)
- ZEND_ARG_TYPE_INFO(0, timeout, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO(0, expire, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0)
ZEND_END_ARG_INFO()
-#define arginfo_class_RedisCluster_setnx arginfo_class_RedisCluster_setex
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_setnx, 0, 2, RedisCluster, MAY_BE_BOOL)
+ ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0)
+ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_setoption, 0, 2, _IS_BOOL, 0)
ZEND_ARG_TYPE_INFO(0, option, IS_LONG, 0)
ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_setrange, 0, 3, IS_LONG, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_setrange, 0, 3, RedisCluster, MAY_BE_LONG|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, offset, IS_LONG, 0)
ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0)
ZEND_END_ARG_INFO()
-#define arginfo_class_RedisCluster_sinter arginfo_class_RedisCluster_del
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_sinter, 0, 1, RedisCluster, MAY_BE_ARRAY|MAY_BE_FALSE)
+ ZEND_ARG_TYPE_MASK(0, key, MAY_BE_ARRAY|MAY_BE_STRING, NULL)
+ ZEND_ARG_VARIADIC_TYPE_INFO(0, other_keys, IS_STRING, 0)
+ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_sintercard, 0, 1, Redis, MAY_BE_LONG|MAY_BE_FALSE)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_sintercard, 0, 1, RedisCluster, MAY_BE_LONG|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, keys, IS_ARRAY, 0)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, limit, IS_LONG, 0, "-1")
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_sinterstore, 0, 2, _IS_BOOL, 0)
- ZEND_ARG_TYPE_INFO(0, dst, IS_STRING, 0)
- ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
- ZEND_ARG_VARIADIC_TYPE_INFO(0, other_keys, IS_STRING, 0)
-ZEND_END_ARG_INFO()
+#define arginfo_class_RedisCluster_sinterstore arginfo_class_RedisCluster_del
-#define arginfo_class_RedisCluster_sismember arginfo_class_RedisCluster_decr
+#define arginfo_class_RedisCluster_sismember arginfo_class_RedisCluster_setnx
#define arginfo_class_RedisCluster_slowlog arginfo_class_RedisCluster_script
#define arginfo_class_RedisCluster_smembers arginfo_class_RedisCluster_hgetall
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_smove, 0, 3, _IS_BOOL, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_smove, 0, 3, RedisCluster, MAY_BE_BOOL)
ZEND_ARG_TYPE_INFO(0, src, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, dst, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, member, IS_STRING, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_sort, 0, 2, MAY_BE_BOOL|MAY_BE_LONG|MAY_BE_STRING)
- ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
- ZEND_ARG_TYPE_INFO(0, options, IS_ARRAY, 0)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_spop, 0, 1, MAY_BE_STRING|MAY_BE_ARRAY)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_sort, 0, 1, RedisCluster, MAY_BE_ARRAY|MAY_BE_BOOL|MAY_BE_LONG|MAY_BE_STRING)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_ARRAY, 1, "NULL")
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_srandmember, 0, 1, MAY_BE_STRING|MAY_BE_ARRAY)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_spop, 0, 1, RedisCluster, MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, count, IS_LONG, 0, "0")
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_srem, 0, 2, IS_LONG, 0)
- ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
- ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0)
- ZEND_ARG_VARIADIC_TYPE_INFO(0, other_values, IS_STRING, 0)
-ZEND_END_ARG_INFO()
+#define arginfo_class_RedisCluster_srandmember arginfo_class_RedisCluster_spop
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_sscan, 0, 3, MAY_BE_BOOL|MAY_BE_ARRAY)
+#define arginfo_class_RedisCluster_srem arginfo_class_RedisCluster_sadd
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_sscan, 0, 2, MAY_BE_ARRAY|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(1, iterator, IS_LONG, 1)
- ZEND_ARG_TYPE_INFO(0, node, IS_MIXED, 0)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, pattern, IS_STRING, 1, "null")
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, count, IS_LONG, 0, "0")
ZEND_END_ARG_INFO()
-#define arginfo_class_RedisCluster_strlen arginfo_class_RedisCluster_decr
+#define arginfo_class_RedisCluster_strlen arginfo_class_RedisCluster_expiretime
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_subscribe, 0, 2, IS_VOID, 0)
ZEND_ARG_TYPE_INFO(0, channels, IS_ARRAY, 0)
ZEND_ARG_TYPE_INFO(0, cb, IS_CALLABLE, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_sunion, 0, 1, MAY_BE_BOOL|MAY_BE_ARRAY)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_sunion, 0, 1, RedisCluster, MAY_BE_BOOL|MAY_BE_ARRAY)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_VARIADIC_TYPE_INFO(0, other_keys, IS_STRING, 0)
ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_sunionstore arginfo_class_RedisCluster_sdiffstore
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_time, 0, 1, MAY_BE_BOOL|MAY_BE_ARRAY)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_time, 0, 1, RedisCluster, MAY_BE_BOOL|MAY_BE_ARRAY)
ZEND_ARG_TYPE_MASK(0, key_or_address, MAY_BE_STRING|MAY_BE_ARRAY, NULL)
ZEND_END_ARG_INFO()
-#define arginfo_class_RedisCluster_ttl arginfo_class_RedisCluster_decr
+#define arginfo_class_RedisCluster_ttl arginfo_class_RedisCluster_expiretime
-#define arginfo_class_RedisCluster_type arginfo_class_RedisCluster_decr
+#define arginfo_class_RedisCluster_type arginfo_class_RedisCluster_expiretime
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_unsubscribe, 0, 1, MAY_BE_BOOL|MAY_BE_ARRAY)
ZEND_ARG_TYPE_INFO(0, channels, IS_ARRAY, 0)
@@ -699,18 +723,18 @@ ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_unwatch arginfo_class_RedisCluster_clearlasterror
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_watch, 0, 1, _IS_BOOL, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_watch, 0, 1, RedisCluster, MAY_BE_BOOL)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_VARIADIC_TYPE_INFO(0, other_keys, IS_STRING, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_xack, 0, 3, IS_LONG, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_xack, 0, 3, RedisCluster, MAY_BE_LONG|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, group, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, ids, IS_ARRAY, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_xadd, 0, 3, IS_STRING, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_xadd, 0, 3, RedisCluster, MAY_BE_STRING|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, id, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, values, IS_ARRAY, 0)
@@ -718,7 +742,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_xadd, 0, 3, I
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, approx, _IS_BOOL, 0, "false")
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_xclaim, 0, 6, MAY_BE_STRING|MAY_BE_ARRAY)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_xclaim, 0, 6, RedisCluster, MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_FALSE)
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)
@@ -727,7 +751,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_xclaim, 0, 6,
ZEND_ARG_TYPE_INFO(0, options, IS_ARRAY, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_xdel, 0, 2, IS_LONG, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_xdel, 0, 2, RedisCluster, MAY_BE_LONG|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, ids, IS_ARRAY, 0)
ZEND_END_ARG_INFO()
@@ -747,9 +771,9 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_xinfo, 0, 1,
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, count, IS_LONG, 0, "-1")
ZEND_END_ARG_INFO()
-#define arginfo_class_RedisCluster_xlen arginfo_class_RedisCluster_decr
+#define arginfo_class_RedisCluster_xlen arginfo_class_RedisCluster_expiretime
-ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_xpending, 0, 2, Redis, MAY_BE_ARRAY|MAY_BE_FALSE)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_xpending, 0, 2, RedisCluster, MAY_BE_ARRAY|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, group, IS_STRING, 0)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, start, IS_STRING, 1, "null")
@@ -758,20 +782,20 @@ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_xpending,
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, consumer, IS_STRING, 1, "null")
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_xrange, 0, 3, MAY_BE_BOOL|MAY_BE_ARRAY)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_xrange, 0, 3, RedisCluster, MAY_BE_BOOL|MAY_BE_ARRAY)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, start, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, end, IS_STRING, 0)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, count, IS_LONG, 0, "-1")
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_xread, 0, 1, MAY_BE_BOOL|MAY_BE_ARRAY)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_xread, 0, 1, RedisCluster, MAY_BE_BOOL|MAY_BE_ARRAY)
ZEND_ARG_TYPE_INFO(0, streams, IS_ARRAY, 0)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, count, IS_LONG, 0, "-1")
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, block, IS_LONG, 0, "-1")
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_xreadgroup, 0, 3, MAY_BE_BOOL|MAY_BE_ARRAY)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_xreadgroup, 0, 3, RedisCluster, MAY_BE_BOOL|MAY_BE_ARRAY)
ZEND_ARG_TYPE_INFO(0, group, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, consumer, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, streams, IS_ARRAY, 0)
@@ -789,66 +813,80 @@ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_xtrim, 0,
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, limit, IS_LONG, 0, "-1")
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_zadd, 0, 3, IS_LONG, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_zadd, 0, 2, RedisCluster, MAY_BE_LONG|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
- ZEND_ARG_TYPE_INFO(0, score, IS_DOUBLE, 0)
- ZEND_ARG_TYPE_INFO(0, member, IS_STRING, 0)
- ZEND_ARG_VARIADIC_TYPE_INFO(0, extra_args, IS_MIXED, 0)
+ ZEND_ARG_TYPE_MASK(0, score_or_options, MAY_BE_ARRAY|MAY_BE_DOUBLE, NULL)
+ ZEND_ARG_VARIADIC_TYPE_INFO(0, more_scores_and_mems, IS_MIXED, 0)
ZEND_END_ARG_INFO()
-#define arginfo_class_RedisCluster_zcard arginfo_class_RedisCluster_decr
+#define arginfo_class_RedisCluster_zcard arginfo_class_RedisCluster_expiretime
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_zcount, 0, 3, IS_LONG, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_zcount, 0, 3, RedisCluster, MAY_BE_LONG|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, start, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, end, IS_STRING, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_zincrby, 0, 3, IS_DOUBLE, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_zincrby, 0, 3, RedisCluster, MAY_BE_DOUBLE|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, value, IS_DOUBLE, 0)
ZEND_ARG_TYPE_INFO(0, member, IS_STRING, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_zinterstore, 0, 2, IS_LONG, 0)
- ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_zinterstore, 0, 2, RedisCluster, MAY_BE_LONG|MAY_BE_FALSE)
+ ZEND_ARG_TYPE_INFO(0, dst, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, keys, IS_ARRAY, 0)
- ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, weights, IS_ARRAY, 0, "null")
- ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, aggregate, IS_STRING, 0, "null")
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, weights, IS_ARRAY, 1, "null")
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, aggregate, IS_STRING, 1, "null")
ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_zintercard arginfo_class_RedisCluster_sintercard
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_zlexcount, 0, 3, IS_LONG, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_zlexcount, 0, 3, RedisCluster, MAY_BE_LONG|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, min, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, max, IS_STRING, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_zpopmax, 0, 1, MAY_BE_BOOL|MAY_BE_ARRAY)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_zpopmax, 0, 1, RedisCluster, MAY_BE_BOOL|MAY_BE_ARRAY)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, value, IS_LONG, 0, "null")
ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_zpopmin arginfo_class_RedisCluster_zpopmax
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_zrange, 0, 3, MAY_BE_BOOL|MAY_BE_ARRAY)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_zrange, 0, 3, RedisCluster, MAY_BE_ARRAY|MAY_BE_BOOL)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, start, IS_LONG, 0)
ZEND_ARG_TYPE_INFO(0, end, IS_LONG, 0)
- ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_ARRAY, 0, "null")
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options_withscores, IS_MIXED, 0, "null")
ZEND_END_ARG_INFO()
-#define arginfo_class_RedisCluster_zrangebylex arginfo_class_RedisCluster_zrange
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_zrangebylex, 0, 3, RedisCluster, MAY_BE_ARRAY|MAY_BE_FALSE)
+ ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, min, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, max, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, offset, IS_LONG, 0, "-1")
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, count, IS_LONG, 0, "-1")
+ZEND_END_ARG_INFO()
-#define arginfo_class_RedisCluster_zrangebyscore arginfo_class_RedisCluster_zrange
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_zrangebyscore, 0, 3, RedisCluster, MAY_BE_ARRAY|MAY_BE_FALSE)
+ ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, start, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, end, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_ARRAY, 0, "[]")
+ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_zrank, 0, 2, IS_LONG, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_zrank, 0, 2, RedisCluster, MAY_BE_LONG|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, member, IS_MIXED, 0)
ZEND_END_ARG_INFO()
-#define arginfo_class_RedisCluster_zrem arginfo_class_RedisCluster_srem
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_zrem, 0, 2, RedisCluster, MAY_BE_LONG|MAY_BE_FALSE)
+ ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0)
+ ZEND_ARG_VARIADIC_TYPE_INFO(0, other_values, IS_STRING, 0)
+ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_zremrangebylex arginfo_class_RedisCluster_zlexcount
@@ -856,7 +894,7 @@ ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_zremrangebyscore arginfo_class_RedisCluster_zlexcount
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_zrevrange, 0, 3, MAY_BE_BOOL|MAY_BE_ARRAY)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_zrevrange, 0, 3, RedisCluster, MAY_BE_BOOL|MAY_BE_ARRAY)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, min, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, max, IS_STRING, 0)
@@ -869,18 +907,24 @@ ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_zrevrank arginfo_class_RedisCluster_zrank
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_zscan, 0, 2, MAY_BE_BOOL|MAY_BE_ARRAY)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_zscan, 0, 2, RedisCluster, MAY_BE_BOOL|MAY_BE_ARRAY)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(1, iterator, IS_LONG, 1)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, pattern, IS_STRING, 1, "null")
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, count, IS_LONG, 0, "0")
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_zscore, 0, 1, IS_DOUBLE, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_zscore, 0, 2, RedisCluster, MAY_BE_DOUBLE|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, member, IS_MIXED, 0)
ZEND_END_ARG_INFO()
-#define arginfo_class_RedisCluster_zunionstore arginfo_class_RedisCluster_zinterstore
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_zunionstore, 0, 2, RedisCluster, MAY_BE_LONG|MAY_BE_FALSE)
+ ZEND_ARG_TYPE_INFO(0, dst, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, keys, IS_ARRAY, 0)
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, weights, IS_ARRAY, 1, "NULL")
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, aggregate, IS_STRING, 1, "NULL")
+ZEND_END_ARG_INFO()
ZEND_METHOD(RedisCluster, __construct);
diff --git a/redis_cluster_legacy_arginfo.h b/redis_cluster_legacy_arginfo.h
index 3484a2db..c1552291 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: 59682d20ee8ebad4f8a5c914432f41dac0860770 */
+ * Stub hash: 280323a9e3fc028641ad1d8bcba2514dfa90fac9 */
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster___construct, 0, 0, 1)
ZEND_ARG_INFO(0, name)
@@ -55,6 +55,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_bitcount, 0, 0, 1)
ZEND_ARG_INFO(0, key)
ZEND_ARG_INFO(0, start)
ZEND_ARG_INFO(0, end)
+ ZEND_ARG_INFO(0, bybit)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_bitop, 0, 0, 3)
@@ -108,7 +109,7 @@ ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_clearlasterror arginfo_class_RedisCluster__masters
-ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_client, 0, 0, 3)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_client, 0, 0, 2)
ZEND_ARG_INFO(0, node)
ZEND_ARG_INFO(0, subcommand)
ZEND_ARG_INFO(0, arg)
@@ -134,7 +135,10 @@ ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_dbsize arginfo_class_RedisCluster_bgrewriteaof
-#define arginfo_class_RedisCluster_decr arginfo_class_RedisCluster__prefix
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_decr, 0, 0, 1)
+ ZEND_ARG_INFO(0, key)
+ ZEND_ARG_INFO(0, by)
+ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_decrby arginfo_class_RedisCluster_append
@@ -168,7 +172,7 @@ ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_exec arginfo_class_RedisCluster__masters
-#define arginfo_class_RedisCluster_exists arginfo_class_RedisCluster__prefix
+#define arginfo_class_RedisCluster_exists arginfo_class_RedisCluster_del
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_expire, 0, 0, 2)
ZEND_ARG_INFO(0, key)
@@ -286,7 +290,7 @@ ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_hmget, 0, 0, 2)
ZEND_ARG_INFO(0, key)
- ZEND_ARG_INFO(0, members)
+ ZEND_ARG_INFO(0, keys)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_hmset, 0, 0, 2)
@@ -312,7 +316,7 @@ ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_hvals arginfo_class_RedisCluster__prefix
-#define arginfo_class_RedisCluster_incr arginfo_class_RedisCluster__prefix
+#define arginfo_class_RedisCluster_incr arginfo_class_RedisCluster_decr
#define arginfo_class_RedisCluster_incrby arginfo_class_RedisCluster_append
@@ -362,10 +366,10 @@ ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_lrange arginfo_class_RedisCluster_getrange
-ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_lrem, 0, 0, 3)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_lrem, 0, 0, 2)
ZEND_ARG_INFO(0, key)
- ZEND_ARG_INFO(0, count)
ZEND_ARG_INFO(0, value)
+ ZEND_ARG_INFO(0, count)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_lset, 0, 0, 3)
@@ -386,7 +390,9 @@ ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_msetnx arginfo_class_RedisCluster_mset
-#define arginfo_class_RedisCluster_multi arginfo_class_RedisCluster__masters
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_multi, 0, 0, 0)
+ ZEND_ARG_INFO(0, value)
+ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_object, 0, 0, 2)
ZEND_ARG_INFO(0, subcommand)
@@ -406,12 +412,9 @@ ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_pfcount arginfo_class_RedisCluster__prefix
-ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_pfmerge, 0, 0, 2)
- ZEND_ARG_INFO(0, key)
- ZEND_ARG_INFO(0, keys)
-ZEND_END_ARG_INFO()
+#define arginfo_class_RedisCluster_pfmerge arginfo_class_RedisCluster_hmget
-ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_ping, 0, 0, 2)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_ping, 0, 0, 1)
ZEND_ARG_INFO(0, key_or_address)
ZEND_ARG_INFO(0, message)
ZEND_END_ARG_INFO()
@@ -453,12 +456,15 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_rawcommand, 0, 0, 2)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_rename, 0, 0, 2)
+ ZEND_ARG_INFO(0, key_src)
+ ZEND_ARG_INFO(0, key_dst)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_renamenx, 0, 0, 2)
ZEND_ARG_INFO(0, key)
ZEND_ARG_INFO(0, newkey)
ZEND_END_ARG_INFO()
-#define arginfo_class_RedisCluster_renamenx arginfo_class_RedisCluster_rename
-
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_restore, 0, 0, 3)
ZEND_ARG_INFO(0, key)
ZEND_ARG_INFO(0, timeout)
@@ -475,7 +481,10 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_rpoplpush, 0, 0, 2)
ZEND_ARG_INFO(0, dst)
ZEND_END_ARG_INFO()
-#define arginfo_class_RedisCluster_rpush arginfo_class_RedisCluster_lpush
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_rpush, 0, 0, 1)
+ ZEND_ARG_INFO(0, key)
+ ZEND_ARG_VARIADIC_INFO(0, elements)
+ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_rpushx arginfo_class_RedisCluster_append
@@ -510,7 +519,11 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_sdiffstore, 0, 0, 2)
ZEND_ARG_VARIADIC_INFO(0, other_keys)
ZEND_END_ARG_INFO()
-#define arginfo_class_RedisCluster_set arginfo_class_RedisCluster_append
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_set, 0, 0, 2)
+ ZEND_ARG_INFO(0, key)
+ ZEND_ARG_INFO(0, value)
+ ZEND_ARG_INFO(0, options)
+ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_setbit, 0, 0, 3)
ZEND_ARG_INFO(0, key)
@@ -520,11 +533,11 @@ ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_setex, 0, 0, 3)
ZEND_ARG_INFO(0, key)
+ ZEND_ARG_INFO(0, expire)
ZEND_ARG_INFO(0, value)
- ZEND_ARG_INFO(0, timeout)
ZEND_END_ARG_INFO()
-#define arginfo_class_RedisCluster_setnx arginfo_class_RedisCluster_setex
+#define arginfo_class_RedisCluster_setnx arginfo_class_RedisCluster_append
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_setoption, 0, 0, 2)
ZEND_ARG_INFO(0, option)
@@ -544,9 +557,9 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_sintercard, 0, 0, 1)
ZEND_ARG_INFO(0, limit)
ZEND_END_ARG_INFO()
-#define arginfo_class_RedisCluster_sinterstore arginfo_class_RedisCluster_sdiffstore
+#define arginfo_class_RedisCluster_sinterstore arginfo_class_RedisCluster_del
-#define arginfo_class_RedisCluster_sismember arginfo_class_RedisCluster__prefix
+#define arginfo_class_RedisCluster_sismember arginfo_class_RedisCluster_append
#define arginfo_class_RedisCluster_slowlog arginfo_class_RedisCluster_script
@@ -558,24 +571,18 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_smove, 0, 0, 3)
ZEND_ARG_INFO(0, member)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_sort, 0, 0, 2)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_sort, 0, 0, 1)
ZEND_ARG_INFO(0, key)
ZEND_ARG_INFO(0, options)
ZEND_END_ARG_INFO()
-#define arginfo_class_RedisCluster_spop arginfo_class_RedisCluster__prefix
+#define arginfo_class_RedisCluster_spop arginfo_class_RedisCluster_lpop
#define arginfo_class_RedisCluster_srandmember arginfo_class_RedisCluster_lpop
#define arginfo_class_RedisCluster_srem arginfo_class_RedisCluster_lpush
-ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_sscan, 0, 0, 3)
- ZEND_ARG_INFO(0, key)
- ZEND_ARG_INFO(1, iterator)
- ZEND_ARG_INFO(0, node)
- ZEND_ARG_INFO(0, pattern)
- ZEND_ARG_INFO(0, count)
-ZEND_END_ARG_INFO()
+#define arginfo_class_RedisCluster_sscan arginfo_class_RedisCluster_hscan
#define arginfo_class_RedisCluster_strlen arginfo_class_RedisCluster__prefix
@@ -689,11 +696,10 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_xtrim, 0, 0, 2)
ZEND_ARG_INFO(0, limit)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_zadd, 0, 0, 3)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_zadd, 0, 0, 2)
ZEND_ARG_INFO(0, key)
- ZEND_ARG_INFO(0, score)
- ZEND_ARG_INFO(0, member)
- ZEND_ARG_VARIADIC_INFO(0, extra_args)
+ ZEND_ARG_INFO(0, score_or_options)
+ ZEND_ARG_VARIADIC_INFO(0, more_scores_and_mems)
ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_zcard arginfo_class_RedisCluster__prefix
@@ -707,7 +713,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_zincrby, 0, 0, 3)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_zinterstore, 0, 0, 2)
- ZEND_ARG_INFO(0, key)
+ ZEND_ARG_INFO(0, dst)
ZEND_ARG_INFO(0, keys)
ZEND_ARG_INFO(0, weights)
ZEND_ARG_INFO(0, aggregate)
@@ -732,12 +738,23 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_zrange, 0, 0, 3)
ZEND_ARG_INFO(0, key)
ZEND_ARG_INFO(0, start)
ZEND_ARG_INFO(0, end)
- ZEND_ARG_INFO(0, options)
+ ZEND_ARG_INFO(0, options_withscores)
ZEND_END_ARG_INFO()
-#define arginfo_class_RedisCluster_zrangebylex arginfo_class_RedisCluster_zrange
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_zrangebylex, 0, 0, 3)
+ ZEND_ARG_INFO(0, key)
+ ZEND_ARG_INFO(0, min)
+ ZEND_ARG_INFO(0, max)
+ ZEND_ARG_INFO(0, offset)
+ ZEND_ARG_INFO(0, count)
+ZEND_END_ARG_INFO()
-#define arginfo_class_RedisCluster_zrangebyscore arginfo_class_RedisCluster_zrange
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_zrangebyscore, 0, 0, 3)
+ ZEND_ARG_INFO(0, key)
+ ZEND_ARG_INFO(0, start)
+ ZEND_ARG_INFO(0, end)
+ ZEND_ARG_INFO(0, options)
+ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_zrank arginfo_class_RedisCluster_hexists
@@ -764,7 +781,7 @@ ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_zscan arginfo_class_RedisCluster_hscan
-#define arginfo_class_RedisCluster_zscore arginfo_class_RedisCluster__prefix
+#define arginfo_class_RedisCluster_zscore arginfo_class_RedisCluster_hexists
#define arginfo_class_RedisCluster_zunionstore arginfo_class_RedisCluster_zinterstore
diff --git a/redis_commands.c b/redis_commands.c
index 098b3a9d..3c56f892 100644
--- a/redis_commands.c
+++ b/redis_commands.c
@@ -623,7 +623,7 @@ int redis_zrange_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock,
zend_string *zkey;
zval *z_ws = NULL, *z_ele;
- if (zend_parse_parameters(ZEND_NUM_ARGS(), "sll|z", &key, &key_len,
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "sll|z!", &key, &key_len,
&start, &end, &z_ws) == FAILURE)
{
return FAILURE;
@@ -1861,10 +1861,10 @@ int redis_set_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock,
ZEND_HASH_FOREACH_STR_KEY_VAL(kt, zkey, v) {
ZVAL_DEREF(v);
/* Detect PX or EX argument and validate timeout */
- if (zkey && (ZSTR_STRICMP_STATIC(zkey, "EX") ||
- ZSTR_STRICMP_STATIC(zkey, "PX") ||
- ZSTR_STRICMP_STATIC(zkey, "EXAT") ||
- ZSTR_STRICMP_STATIC(zkey, "PXAT"))
+ if (zkey && (zend_string_equals_literal_ci(zkey, "EX") ||
+ zend_string_equals_literal_ci(zkey, "PX") ||
+ zend_string_equals_literal_ci(zkey, "EXAT") ||
+ zend_string_equals_literal_ci(zkey, "PXAT"))
) {
exp_set = 1;
@@ -1878,11 +1878,13 @@ int redis_set_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock,
expire = atol(Z_STRVAL_P(v));
}
} else if (Z_TYPE_P(v) == IS_STRING) {
- if (ZVAL_STRICMP_STATIC(v, "KEEPTTL")) {
+ if (zend_string_equals_literal_ci(Z_STR_P(v), "KEEPTTL")) {
keep_ttl = 1;
- } else if (ZVAL_STRICMP_STATIC((v), "GET")) {
+ } else if (zend_string_equals_literal_ci(Z_STR_P(v), "GET")) {
get = 1;
- } else if (ZVAL_STRICMP_STATIC(v, "NX") || ZVAL_STRICMP_STATIC(v, "XX")) {
+ } else if (zend_string_equals_literal_ci(Z_STR_P(v), "NX") ||
+ zend_string_equals_literal_ci(Z_STR_P(v), "XX"))
+ {
set_type = Z_STRVAL_P(v);
}
}
diff --git a/redis_legacy_arginfo.h b/redis_legacy_arginfo.h
index 507c010e..66a63b32 100644
--- a/redis_legacy_arginfo.h
+++ b/redis_legacy_arginfo.h
@@ -1,5 +1,5 @@
/* This is a generated file, edit the .stub.php file instead.
- * Stub hash: 6d0479328ae627b9c45104a52014b3649e533015 */
+ * Stub hash: 1810caef11b38440e073059e2d9c65f92fa8a9a5 */
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Redis___construct, 0, 0, 0)
ZEND_ARG_INFO(0, options)
diff --git a/tests/RedisClusterTest.php b/tests/RedisClusterTest.php
index 2ba98509..6df481d5 100644
--- a/tests/RedisClusterTest.php
+++ b/tests/RedisClusterTest.php
@@ -390,7 +390,7 @@ class Redis_Cluster_Test extends Redis_Test {
// watch and unwatch
$this->redis->watch('x');
$r->incr('x'); // other instance
- $this->redis->unwatch('x'); // cancel transaction watch
+ $this->redis->unwatch(); // cancel transaction watch
// This should succeed as the watch has been cancelled
$ret = $this->redis->multi()->get('x')->exec();