@@ -99,6 +99,21 @@ def get_characteristic(
9999 return dialect .get_ydb_request_settings (dbapi_connection )
100100
101101
102+ class YdbRetrySettingsCharacteristic (characteristics .ConnectionCharacteristic ):
103+ def reset_characteristic (self , dialect : "YqlDialect" , dbapi_connection : ydb_dbapi .Connection ) -> None :
104+ dialect .reset_ydb_retry_settings (dbapi_connection )
105+
106+ def set_characteristic (
107+ self , dialect : "YqlDialect" , dbapi_connection : ydb_dbapi .Connection , value : ydb .RetrySettings
108+ ) -> None :
109+ dialect .set_ydb_retry_settings (dbapi_connection , value )
110+
111+ def get_characteristic (
112+ self , dialect : "YqlDialect" , dbapi_connection : ydb_dbapi .Connection
113+ ) -> ydb .RetrySettings :
114+ return dialect .get_ydb_retry_settings (dbapi_connection )
115+
116+
102117class YqlDialect (StrCompileDialect ):
103118 name = "yql"
104119 driver = "ydb"
@@ -150,6 +165,7 @@ class YqlDialect(StrCompileDialect):
150165 {
151166 "isolation_level" : characteristics .IsolationLevelCharacteristic (),
152167 "ydb_request_settings" : YdbRequestSettingsCharacteristic (),
168+ "ydb_retry_settings" : YdbRetrySettingsCharacteristic (),
153169 }
154170 )
155171
@@ -312,6 +328,19 @@ def reset_ydb_request_settings(self, dbapi_connection: ydb_dbapi.Connection):
312328 def get_ydb_request_settings (self , dbapi_connection : ydb_dbapi .Connection ) -> ydb .BaseRequestSettings :
313329 return dbapi_connection .get_ydb_request_settings ()
314330
331+ def set_ydb_retry_settings (
332+ self ,
333+ dbapi_connection : ydb_dbapi .Connection ,
334+ value : ydb .RetrySettings ,
335+ ) -> None :
336+ dbapi_connection .set_ydb_retry_settings (value )
337+
338+ def reset_ydb_retry_settings (self , dbapi_connection : ydb_dbapi .Connection ):
339+ self .set_ydb_retry_settings (dbapi_connection , ydb .RetrySettings ())
340+
341+ def get_ydb_retry_settings (self , dbapi_connection : ydb_dbapi .Connection ) -> ydb .RetrySettings :
342+ return dbapi_connection .get_ydb_retry_settings ()
343+
315344 def create_connect_args (self , url ):
316345 args , kwargs = super ().create_connect_args (url )
317346 # YDB database name should start with '/'
0 commit comments