@@ -913,13 +913,22 @@ PHP_METHOD(tarantool_class, ping) {
913
913
PHP_METHOD (tarantool_class , select ) {
914
914
zval * space = NULL , * index = NULL ;
915
915
zval * key = NULL , * key_new = NULL ;
916
+ zval * zlimit = NULL ;
916
917
long limit = LONG_MAX - 1 , offset = 0 , iterator = 0 ;
917
918
918
- TARANTOOL_PARSE_PARAMS (id , "z|zzlll " , & space , & key ,
919
- & index , & limit , & offset , & iterator );
919
+ TARANTOOL_PARSE_PARAMS (id , "z|zzzll " , & space , & key ,
920
+ & index , & zlimit , & offset , & iterator );
920
921
TARANTOOL_FETCH_OBJECT (obj , id );
921
922
TARANTOOL_CONNECT_ON_DEMAND (obj , id );
922
923
924
+ if (zlimit != NULL && Z_TYPE_P (zlimit ) != IS_NULL && Z_TYPE_P (zlimit ) != IS_LONG ) {
925
+ THROW_EXC ("wrong type of 'limit' - expected long/null, got '%s'" ,
926
+ zend_zval_type_name (zlimit ));
927
+ RETURN_FALSE ;
928
+ } else if (zlimit != NULL && Z_TYPE_P (zlimit ) == IS_LONG ) {
929
+ limit = Z_LVAL_P (zlimit );
930
+ }
931
+
923
932
long space_no = get_spaceno_by_name (obj , id , space TSRMLS_CC );
924
933
if (space_no == FAILURE ) RETURN_FALSE ;
925
934
int32_t index_no = 0 ;
0 commit comments