@@ -25,6 +25,10 @@ zend_class_entry *pcbc_n1ql_query_ce;
25
25
#define PCBC_N1QL_CONSISTENCY_REQUEST_PLUS 2
26
26
#define PCBC_N1QL_CONSISTENCY_STATEMENT_PLUS 3
27
27
28
+ #define PCBC_N1QL_PROFILE_NONE "off"
29
+ #define PCBC_N1QL_PROFILE_PHASES "phases"
30
+ #define PCBC_N1QL_PROFILE_TIMINGS "timings"
31
+
28
32
/* {{{ proto void N1qlQuery::__construct() Should not be called directly */
29
33
PHP_METHOD (N1qlQuery , __construct )
30
34
{
@@ -289,6 +293,24 @@ PHP_METHOD(N1qlQuery, consistency)
289
293
RETURN_ZVAL (getThis (), 1 , 0 );
290
294
} /* }}} */
291
295
296
+ /* {{{ proto \Couchbase\N1qlQuery N1qlQuery::profile(string $profileType) */
297
+ PHP_METHOD (N1qlQuery , profile )
298
+ {
299
+ char * profile_type = NULL ;
300
+ pcbc_str_arg_size profile_type_len = 0 ;
301
+ int rv ;
302
+ zval * options ;
303
+
304
+ rv = zend_parse_parameters (ZEND_NUM_ARGS () TSRMLS_CC , "s" , & profile_type , & profile_type_len );
305
+ if (rv == FAILURE || profile_type == NULL ) {
306
+ RETURN_NULL ();
307
+ }
308
+
309
+ PCBC_READ_PROPERTY (options , pcbc_n1ql_query_ce , getThis (), "options" , 0 );
310
+ ADD_ASSOC_STRING (options , "profile" , profile_type );
311
+ RETURN_ZVAL (getThis (), 1 , 0 );
312
+ } /* }}} */
313
+
292
314
/* {{{ proto \Couchbase\N1qlQuery N1qlQuery::consistentWith(\Couchbase\MutationState $mutationState) */
293
315
PHP_METHOD (N1qlQuery , consistentWith )
294
316
{
@@ -336,6 +358,10 @@ ZEND_BEGIN_ARG_INFO_EX(ai_N1qlQuery_consistency, 0, 0, 1)
336
358
ZEND_ARG_INFO (0 , consistency )
337
359
ZEND_END_ARG_INFO ()
338
360
361
+ ZEND_BEGIN_ARG_INFO_EX (ai_N1qlQuery_profile , 0 , 0 , 1 )
362
+ ZEND_ARG_INFO (0 , profileType )
363
+ ZEND_END_ARG_INFO ()
364
+
339
365
ZEND_BEGIN_ARG_INFO_EX (ai_N1qlQuery_params , 0 , 0 , 1 )
340
366
ZEND_ARG_INFO (0 , params )
341
367
ZEND_END_ARG_INFO ()
@@ -373,6 +399,7 @@ zend_function_entry n1ql_query_methods[] = {
373
399
PHP_ME (N1qlQuery , positionalParams , ai_N1qlQuery_params , ZEND_ACC_PUBLIC )
374
400
PHP_ME (N1qlQuery , namedParams , ai_N1qlQuery_params , ZEND_ACC_PUBLIC )
375
401
PHP_ME (N1qlQuery , consistency , ai_N1qlQuery_consistency , ZEND_ACC_PUBLIC )
402
+ PHP_ME (N1qlQuery , profile , ai_N1qlQuery_profile , ZEND_ACC_PUBLIC )
376
403
PHP_ME (N1qlQuery , consistentWith , ai_N1qlQuery_consistentWith , ZEND_ACC_PUBLIC )
377
404
PHP_ME (N1qlQuery , scanCap , ai_N1qlQuery_scanCap , ZEND_ACC_PUBLIC )
378
405
PHP_ME (N1qlQuery , pipelineBatch , ai_N1qlQuery_pipelineBatch , ZEND_ACC_PUBLIC )
@@ -481,6 +508,12 @@ PHP_MINIT_FUNCTION(N1qlQuery)
481
508
zend_declare_class_constant_long (pcbc_n1ql_query_ce , ZEND_STRL ("STATEMENT_PLUS" ),
482
509
PCBC_N1QL_CONSISTENCY_STATEMENT_PLUS TSRMLS_CC );
483
510
511
+ zend_declare_class_constant_string (pcbc_n1ql_query_ce , ZEND_STRL ("PROFILE_NONE" ), PCBC_N1QL_PROFILE_NONE TSRMLS_CC );
512
+ zend_declare_class_constant_string (pcbc_n1ql_query_ce , ZEND_STRL ("PROFILE_PHASES" ),
513
+ PCBC_N1QL_PROFILE_PHASES TSRMLS_CC );
514
+ zend_declare_class_constant_string (pcbc_n1ql_query_ce , ZEND_STRL ("PROFILE_TIMINGS" ),
515
+ PCBC_N1QL_PROFILE_TIMINGS TSRMLS_CC );
516
+
484
517
zend_register_class_alias ("\\CouchbaseN1qlQuery" , pcbc_n1ql_query_ce );
485
518
return SUCCESS ;
486
519
}
0 commit comments