2
2
3
3
namespace YdbPlatform \Ydb \Traits ;
4
4
5
+ use Ydb \FeatureFlag \Status ;
5
6
use Ydb \Operations \OperationParams ;
6
7
use Ydb \StatusIds \StatusCode ;
7
8
9
+ use Ydb \Table \QueryStatsCollection \Mode ;
10
+ use Ydb \TableStats \QueryStats ;
8
11
use YdbPlatform \Ydb \Issue ;
9
12
use YdbPlatform \Ydb \Exception ;
10
13
use YdbPlatform \Ydb \QueryResult ;
@@ -42,6 +45,10 @@ trait RequestTrait
42
45
*/
43
46
protected $ lastDiscovery = 0 ;
44
47
48
+ protected $ collectStats = Mode::STATS_COLLECTION_UNSPECIFIED ;
49
+
50
+ protected $ reportCostInfo = Status::STATUS_UNSPECIFIED ;
51
+
45
52
/**
46
53
* Make a request to the service with the given method.
47
54
*
@@ -54,12 +61,6 @@ trait RequestTrait
54
61
protected function doRequest ($ service , $ method , array $ data = [])
55
62
{
56
63
57
- $ data ['operation_params ' ] = new OperationParams ([
58
- 'report_cost_info ' => 1
59
- ]);
60
- if ($ method ==='ExecuteDataQuery ' )
61
- $ data ['collect_stats ' ] = 10 ;
62
-
63
64
$ this ->checkDiscovery ();
64
65
65
66
$ this ->meta ['x-ydb-auth-ticket ' ] = [$ this ->credentials ->token ()];
@@ -91,8 +92,16 @@ protected function doRequest($service, $method, array $data = [])
91
92
$ resultClass = '\\Ydb \\' . $ service . '\\' . $ method . 'Result ' ;
92
93
}
93
94
95
+ $ data ['operation_params ' ] = new OperationParams ([
96
+ 'report_cost_info ' => $ this ->reportCostInfo
97
+ ]);
98
+
94
99
$ request = new $ requestClass ($ data );
95
100
101
+ if (method_exists ($ request , 'setCollectStats ' )){
102
+ $ request ->setCollectStats ($ this ->collectStats );
103
+ }
104
+
96
105
$ this ->logger ()->debug (
97
106
'YDB: Sending API request [ ' . $ requestClass . ']. ' ,
98
107
json_decode ($ request ->serializeToJsonString (), true )
@@ -382,4 +391,21 @@ protected function checkDiscovery(){
382
391
15 => "DATA_LOSS " ,
383
392
16 => "UNAUTHENTICATED "
384
393
];
394
+
395
+ /**
396
+ * @param int $collectStats \Ydb\Table\QueryStatsCollection\Mode
397
+ */
398
+ public function setCollectStats (int $ collectStats ): void
399
+ {
400
+ $ this ->collectStats = $ collectStats ;
401
+ }
402
+
403
+ /**
404
+ * @param int $reportCostInfo Ydb.FeatureFlag.Status
405
+ */
406
+ public function setReportCostInfo (int $ reportCostInfo ): void
407
+ {
408
+ $ this ->reportCostInfo = $ reportCostInfo ;
409
+ }
410
+
385
411
}
0 commit comments