@@ -68,12 +68,12 @@ impl ConnectionRegistry {
6868 imp_user : Option < ImpersonateUser > ,
6969 bookmarks : & [ String ] ,
7070 ) -> Vec < BoltServer > {
71- if let Some ( db_name) = db. as_ref ( ) . map ( |d| d . to_string ( ) ) {
72- if let Some ( table) = self . databases . get ( & db_name) {
71+ if let Some ( db_name) = db. as_deref ( ) {
72+ if let Some ( table) = self . databases . get ( db_name) {
7373 if table. is_expired ( ) {
7474 debug ! ( "Routing table for database {db_name} is expired" ) ;
7575 match self
76- . fetch_routing_table ( db. clone ( ) , imp_user. clone ( ) , bookmarks)
76+ . fetch_routing_table ( db. clone ( ) , imp_user, bookmarks)
7777 . await
7878 {
7979 Ok ( new_table) => {
@@ -92,7 +92,7 @@ impl ConnectionRegistry {
9292 }
9393 } else {
9494 match self
95- . fetch_routing_table ( db. clone ( ) , imp_user. clone ( ) , bookmarks)
95+ . fetch_routing_table ( db. clone ( ) , imp_user, bookmarks)
9696 . await
9797 {
9898 Ok ( new_table) => {
@@ -109,16 +109,14 @@ impl ConnectionRegistry {
109109 }
110110 } else {
111111 match self
112- . fetch_routing_table ( db. clone ( ) , imp_user. clone ( ) , bookmarks)
112+ . fetch_routing_table ( db. clone ( ) , imp_user, bookmarks)
113113 . await
114114 {
115115 Ok ( new_table) => {
116- let db = new_table. db . clone ( ) ;
117- let database_table: DatabaseTable = new_table. into ( ) ;
118- let servers = database_table. resolve ( ) ;
119- let db_name = db. map_or ( String :: new ( ) , |d| d. to_string ( ) ) ;
116+ let db_name = new_table. db . as_deref ( ) . unwrap_or ( "" ) ;
120117 debug ! ( "Routing table for database {db_name} refreshed" ) ;
121- servers
118+ let database_table: DatabaseTable = new_table. into ( ) ;
119+ database_table. resolve ( )
122120 }
123121 Err ( e) => {
124122 error ! ( "Failed to refresh routing table for database default: {e}" ) ;
@@ -155,18 +153,15 @@ impl ConnectionRegistry {
155153 } ) ?,
156154 ) ;
157155 }
158- let db_name = routing_table
159- . db
160- . as_ref ( )
161- . map_or ( "" . to_string ( ) , |d| d. to_string ( ) ) ;
156+ let db_name = routing_table. db . as_deref ( ) . unwrap_or ( "" ) ;
162157 debug ! (
163158 "Registry updated for database {}. New size is {} with TTL {}s" ,
164159 db_name,
165160 self . pool_registry. len( ) ,
166161 routing_table. ttl
167162 ) ;
168163 let database_table: DatabaseTable = routing_table. into ( ) ;
169- self . databases . insert ( db_name. clone ( ) , database_table) ;
164+ self . databases . insert ( db_name. to_owned ( ) , database_table) ;
170165 Ok ( ( ) )
171166 }
172167
@@ -234,7 +229,7 @@ mod tests {
234229 _bookmarks : & [ String ] ,
235230 db : Option < Database > ,
236231 _imp_user : Option < ImpersonateUser > ,
237- ) -> Pin < Box < dyn Future < Output = Result < RoutingTable , Error > > + Send > > {
232+ ) -> Pin < Box < dyn Future < Output = Result < RoutingTable , Error > > + Send > > {
238233 let vec = self . routing_tables . clone ( ) ;
239234 if let Some ( db) = db {
240235 if let Some ( table) = vec. iter ( ) . find ( |t| t. db . as_ref ( ) == Some ( & db) ) {
@@ -293,9 +288,9 @@ mod tests {
293288 let config = make_config ( ) ;
294289 let registry = Arc :: new ( ConnectionRegistry :: new (
295290 & config,
296- Arc :: new ( TestRoutingTableProvider :: new ( & [
297- cluster_routing_table. clone ( )
298- ] ) ) ,
291+ Arc :: new ( TestRoutingTableProvider :: new ( std :: slice :: from_ref (
292+ & cluster_routing_table,
293+ ) ) ) ,
299294 ) ) ;
300295
301296 let db = Some ( Database :: from ( "neo4j" ) ) ;
0 commit comments