@@ -2842,7 +2842,7 @@ int redis_zadd_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock,
2842
2842
char * * cmd , int * cmd_len , short * slot , void * * ctx )
2843
2843
{
2844
2844
zval * z_args ;
2845
- char * key , * val , * exp_type = NULL ;
2845
+ char * key , * val , * exp_type = NULL , * range_type = NULL ;
2846
2846
size_t key_len , val_len ;
2847
2847
int key_free , val_free ;
2848
2848
int num = ZEND_NUM_ARGS (), i = 1 , argc ;
@@ -2857,7 +2857,7 @@ int redis_zadd_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock,
2857
2857
return FAILURE ;
2858
2858
}
2859
2859
2860
- // Need key, [NX|XX] [CH] [INCR] score, value, [score, value...] */
2860
+ // Need key, [NX|XX] [LT|GT] [ CH] [INCR] score, value, [score, value...] */
2861
2861
if (num % 2 == 0 ) {
2862
2862
if (Z_TYPE (z_args [1 ]) != IS_ARRAY ) {
2863
2863
efree (z_args );
@@ -2868,6 +2868,8 @@ int redis_zadd_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock,
2868
2868
if (Z_TYPE_P (z_opt ) == IS_STRING ) {
2869
2869
if (ZVAL_IS_NX_XX_ARG (z_opt )) {
2870
2870
exp_type = Z_STRVAL_P (z_opt );
2871
+ } else if (ZVAL_STRICMP_STATIC (z_opt , "LT" ) || ZVAL_STRICMP_STATIC (z_opt , "GT" )) {
2872
+ range_type = Z_STRVAL_P (z_opt );
2871
2873
} else if (ZVAL_STRICMP_STATIC (z_opt , "CH" )) {
2872
2874
ch = 1 ;
2873
2875
} else if (ZVAL_STRICMP_STATIC (z_opt , "INCR" )) {
@@ -2883,6 +2885,7 @@ int redis_zadd_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock,
2883
2885
} ZEND_HASH_FOREACH_END ();
2884
2886
argc = num - 1 ;
2885
2887
if (exp_type ) argc ++ ;
2888
+ if (range_type ) argc ++ ;
2886
2889
argc += ch + incr ;
2887
2890
i ++ ;
2888
2891
} else {
@@ -2905,6 +2908,7 @@ int redis_zadd_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock,
2905
2908
if (key_free ) efree (key );
2906
2909
2907
2910
if (exp_type ) redis_cmd_append_sstr (& cmdstr , exp_type , 2 );
2911
+ if (range_type ) redis_cmd_append_sstr (& cmdstr , range_type , 2 );
2908
2912
if (ch ) redis_cmd_append_sstr (& cmdstr , "CH" , 2 );
2909
2913
if (incr ) redis_cmd_append_sstr (& cmdstr , "INCR" , 4 );
2910
2914
0 commit comments