@@ -3619,21 +3619,21 @@ int redis_xadd_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock,
3619
3619
return SUCCESS ;
3620
3620
}
3621
3621
3622
- // XPENDING key group [start end count] [consumer]
3622
+ // XPENDING key group [start end count [consumer] [idle] ]
3623
3623
int redis_xpending_cmd (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock ,
3624
3624
char * * cmd , int * cmd_len , short * slot , void * * ctx )
3625
3625
{
3626
3626
smart_string cmdstr = {0 };
3627
3627
char * key , * group , * start = NULL , * end = NULL , * consumer = NULL ;
3628
3628
size_t keylen , grouplen , startlen , endlen , consumerlen ;
3629
3629
int argc ;
3630
- zend_long count = -1 ;
3630
+ zend_long count = -1 , idle = 0 ;
3631
3631
3632
3632
// XPENDING mystream group55 - + 10 consumer-123
3633
- if (zend_parse_parameters (ZEND_NUM_ARGS (), "ss|ssls " , & key ,
3633
+ if (zend_parse_parameters (ZEND_NUM_ARGS (), "ss|sslsl " , & key ,
3634
3634
& keylen , & group , & grouplen , & start , & startlen ,
3635
- & end , & endlen , & count , & consumer , & consumerlen )
3636
- == FAILURE )
3635
+ & end , & endlen , & count , & consumer , & consumerlen ,
3636
+ & idle ) == FAILURE )
3637
3637
{
3638
3638
return FAILURE ;
3639
3639
}
@@ -3643,8 +3643,8 @@ int redis_xpending_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock,
3643
3643
return FAILURE ;
3644
3644
}
3645
3645
3646
- /* Calculate argc. It's either 2, 5, or 6 */
3647
- argc = 2 + (start != NULL ? 3 + (consumer != NULL ) : 0 );
3646
+ /* Calculate argc. It's either 2, 5, 6 or 7 */
3647
+ argc = 2 + (start != NULL ? 3 + (consumer != NULL ) + ( idle != 0 ) : 0 );
3648
3648
3649
3649
/* Construct command and add required arguments */
3650
3650
REDIS_CMD_INIT_SSTR_STATIC (& cmdstr , argc , "XPENDING" );
@@ -3653,6 +3653,10 @@ int redis_xpending_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock,
3653
3653
3654
3654
/* Add optional argumentst */
3655
3655
if (start ) {
3656
+ if (idle != 0 ) {
3657
+ REDIS_CMD_APPEND_SSTR_STATIC (& cmdstr , "IDLE" );
3658
+ redis_cmd_append_sstr_long (& cmdstr , (long )idle );
3659
+ }
3656
3660
redis_cmd_append_sstr (& cmdstr , start , startlen );
3657
3661
redis_cmd_append_sstr (& cmdstr , end , endlen );
3658
3662
redis_cmd_append_sstr_long (& cmdstr , (long )count );
0 commit comments