@@ -53,7 +53,32 @@ def __exit__(self, exc_type, exc_val, exc_tb):
5353
5454
5555class QueryClientSettings :
56- pass
56+ def __init__ (self ):
57+ self ._native_datetime_in_result_sets = True
58+ self ._native_date_in_result_sets = True
59+ self ._native_json_in_result_sets = True
60+ self ._native_interval_in_result_sets = True
61+ self ._native_timestamp_in_result_sets = True
62+
63+ def with_native_timestamp_in_result_sets (self , enabled : bool ) -> "QueryClientSettings" :
64+ self ._native_timestamp_in_result_sets = enabled
65+ return self
66+
67+ def with_native_interval_in_result_sets (self , enabled : bool ) -> "QueryClientSettings" :
68+ self ._native_interval_in_result_sets = enabled
69+ return self
70+
71+ def with_native_json_in_result_sets (self , enabled : bool ) -> "QueryClientSettings" :
72+ self ._native_json_in_result_sets = enabled
73+ return self
74+
75+ def with_native_date_in_result_sets (self , enabled : bool ) -> "QueryClientSettings" :
76+ self ._native_date_in_result_sets = enabled
77+ return self
78+
79+ def with_native_datetime_in_result_sets (self , enabled : bool ) -> "QueryClientSettings" :
80+ self ._native_datetime_in_result_sets = enabled
81+ return self
5782
5883
5984class IQuerySessionState (abc .ABC ):
@@ -284,6 +309,7 @@ def execute(
284309 exec_mode : Optional [QueryExecMode ] = None ,
285310 parameters : Optional [dict ] = None ,
286311 concurrent_result_sets : Optional [bool ] = False ,
312+ settings : Optional [QueryClientSettings ] = None ,
287313 ) -> Iterator :
288314 """WARNING: This API is experimental and could be changed.
289315
@@ -300,6 +326,7 @@ def execute(
300326 4) QueryExecMode.PARSE.
301327 :param parameters: dict with parameters and YDB types;
302328 :param concurrent_result_sets: A flag to allow YDB mix parts of different result sets. Default is False;
329+ :param settings: An additional request settings QueryClientSettings;
303330
304331 :return: Iterator with result sets
305332 """
@@ -367,13 +394,14 @@ def wrap_execute_query_response(
367394 response_pb : _apis .ydb_query .ExecuteQueryResponsePart ,
368395 tx : Optional [IQueryTxContext ] = None ,
369396 commit_tx : Optional [bool ] = False ,
397+ settings : Optional [QueryClientSettings ] = None ,
370398) -> convert .ResultSet :
371399 issues ._process_response (response_pb )
372400 if tx and response_pb .tx_meta and not tx .tx_id :
373401 tx ._move_to_beginned (response_pb .tx_meta .id )
374402 if tx and commit_tx :
375403 tx ._move_to_commited ()
376- return convert .ResultSet .from_message (response_pb .result_set )
404+ return convert .ResultSet .from_message (response_pb .result_set , settings )
377405
378406
379407def bad_session_handler (func ):
0 commit comments