@@ -1027,11 +1027,29 @@ def with_lazy_result_sets(self, enabled):
1027
1027
class ScanQueryResult (object ):
1028
1028
def __init__ (self , result , table_client_settings ):
1029
1029
self ._result = result
1030
+ self .query_stats = result .query_stats
1030
1031
self .result_set = convert .ResultSet .from_message (
1031
1032
self ._result .result_set , table_client_settings
1032
1033
)
1033
1034
1034
1035
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
+
1035
1053
class ScanQuery (object ):
1036
1054
def __init__ (self , yql_text , parameters_types ):
1037
1055
self .yql_text = yql_text
@@ -1047,10 +1065,16 @@ def _scan_query_request_factory(query, parameters=None, settings=None):
1047
1065
if not isinstance (query , ScanQuery ):
1048
1066
query = ScanQuery (query , {})
1049
1067
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
+ )
1050
1073
return _apis .ydb_table .ExecuteScanQueryRequest (
1051
1074
mode = _apis .ydb_table .ExecuteScanQueryRequest .Mode .MODE_EXEC ,
1052
1075
query = _apis .ydb_table .Query (yql_text = query .yql_text ),
1053
1076
parameters = convert .parameters_to_pb (query .parameters_types , parameters ),
1077
+ collect_stats = collect_stats ,
1054
1078
)
1055
1079
1056
1080
0 commit comments