@@ -99,6 +99,19 @@ 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 (self , dialect : "YqlDialect" , dbapi_connection : ydb_dbapi .Connection ) -> ydb .RetrySettings :
112+ return dialect .get_ydb_retry_settings (dbapi_connection )
113+
114+
102115class YqlDialect (StrCompileDialect ):
103116 name = "yql"
104117 driver = "ydb"
@@ -150,6 +163,7 @@ class YqlDialect(StrCompileDialect):
150163 {
151164 "isolation_level" : characteristics .IsolationLevelCharacteristic (),
152165 "ydb_request_settings" : YdbRequestSettingsCharacteristic (),
166+ "ydb_retry_settings" : YdbRetrySettingsCharacteristic (),
153167 }
154168 )
155169
@@ -312,6 +326,19 @@ def reset_ydb_request_settings(self, dbapi_connection: ydb_dbapi.Connection):
312326 def get_ydb_request_settings (self , dbapi_connection : ydb_dbapi .Connection ) -> ydb .BaseRequestSettings :
313327 return dbapi_connection .get_ydb_request_settings ()
314328
329+ def set_ydb_retry_settings (
330+ self ,
331+ dbapi_connection : ydb_dbapi .Connection ,
332+ value : ydb .RetrySettings ,
333+ ) -> None :
334+ dbapi_connection .set_ydb_retry_settings (value )
335+
336+ def reset_ydb_retry_settings (self , dbapi_connection : ydb_dbapi .Connection ):
337+ self .set_ydb_retry_settings (dbapi_connection , ydb .RetrySettings ())
338+
339+ def get_ydb_retry_settings (self , dbapi_connection : ydb_dbapi .Connection ) -> ydb .RetrySettings :
340+ return dbapi_connection .get_ydb_retry_settings ()
341+
315342 def create_connect_args (self , url ):
316343 args , kwargs = super ().create_connect_args (url )
317344 # YDB database name should start with '/'
0 commit comments