@@ -1027,11 +1027,29 @@ def with_lazy_result_sets(self, enabled):
10271027class ScanQueryResult (object ):
10281028 def __init__ (self , result , table_client_settings ):
10291029 self ._result = result
1030+ self .query_stats = result .query_stats
10301031 self .result_set = convert .ResultSet .from_message (
10311032 self ._result .result_set , table_client_settings
10321033 )
10331034
10341035
1036+ @enum .unique
1037+ class QueryStatsCollectionMode (enum .IntEnum ):
1038+ NONE = _apis .ydb_table .QueryStatsCollection .Mode .STATS_COLLECTION_NONE
1039+ BASIC = _apis .ydb_table .QueryStatsCollection .Mode .STATS_COLLECTION_BASIC
1040+ FULL = _apis .ydb_table .QueryStatsCollection .Mode .STATS_COLLECTION_FULL
1041+
1042+
1043+ class ScanQuerySettings (settings_impl .BaseRequestSettings ):
1044+ def __init__ (self ):
1045+ super (ScanQuerySettings , self ).__init__ ()
1046+ self .collect_stats = None
1047+
1048+ def with_collect_stats (self , collect_stats_mode ):
1049+ self .collect_stats = collect_stats_mode
1050+ return self
1051+
1052+
10351053class ScanQuery (object ):
10361054 def __init__ (self , yql_text , parameters_types ):
10371055 self .yql_text = yql_text
@@ -1047,10 +1065,16 @@ def _scan_query_request_factory(query, parameters=None, settings=None):
10471065 if not isinstance (query , ScanQuery ):
10481066 query = ScanQuery (query , {})
10491067 parameters = {} if parameters is None else parameters
1068+ collect_stats = getattr (
1069+ settings ,
1070+ "collect_stats" ,
1071+ _apis .ydb_table .QueryStatsCollection .Mode .STATS_COLLECTION_NONE ,
1072+ )
10501073 return _apis .ydb_table .ExecuteScanQueryRequest (
10511074 mode = _apis .ydb_table .ExecuteScanQueryRequest .Mode .MODE_EXEC ,
10521075 query = _apis .ydb_table .Query (yql_text = query .yql_text ),
10531076 parameters = convert .parameters_to_pb (query .parameters_types , parameters ),
1077+ collect_stats = collect_stats ,
10541078 )
10551079
10561080
0 commit comments