@@ -12,14 +12,12 @@ use tokio::io::{AsyncSeekExt, AsyncWriteExt};
1212use tokio:: time:: Duration ;
1313use tokio_stream:: StreamExt ;
1414
15- use crate :: namespace:: ResolveNamespacePathFn ;
1615use crate :: replication:: primary:: frame_stream:: FrameStream ;
1716use crate :: replication:: { LogReadError , ReplicationLogger } ;
1817use crate :: { BLOCKING_RT , LIBSQL_PAGE_SIZE } ;
1918
20- use super :: broadcasters:: BroadcasterHandle ;
2119use super :: meta_store:: MetaStoreHandle ;
22- use super :: { Namespace , NamespaceConfig , NamespaceName , NamespaceStore , RestoreOption } ;
20+ use super :: { NamespaceName , NamespaceStore , RestoreOption } ;
2321
2422type Result < T > = crate :: Result < T , ForkError > ;
2523
@@ -54,24 +52,21 @@ async fn write_frame(frame: &FrameBorrowed, temp_file: &mut tokio::fs::File) ->
5452 Ok ( ( ) )
5553}
5654
57- pub struct ForkTask < ' a > {
55+ pub struct ForkTask {
5856 pub base_path : Arc < Path > ,
5957 pub logger : Arc < ReplicationLogger > ,
6058 pub to_namespace : NamespaceName ,
6159 pub to_config : MetaStoreHandle ,
6260 pub restore_to : Option < PointInTimeRestore > ,
63- pub ns_config : & ' a NamespaceConfig ,
64- pub resolve_attach : ResolveNamespacePathFn ,
6561 pub store : NamespaceStore ,
66- pub broadcaster : BroadcasterHandle ,
6762}
6863
6964pub struct PointInTimeRestore {
7065 pub timestamp : NaiveDateTime ,
7166 pub replicator_options : bottomless:: replicator:: Options ,
7267}
7368
74- impl < ' a > ForkTask < ' a > {
69+ impl ForkTask {
7570 pub async fn fork ( self ) -> Result < super :: Namespace > {
7671 let base_path = self . base_path . clone ( ) ;
7772 let dest_namespace = self . to_namespace . clone ( ) ;
@@ -105,18 +100,9 @@ impl<'a> ForkTask<'a> {
105100 let dest_path = self . base_path . join ( "dbs" ) . join ( self . to_namespace . as_str ( ) ) ;
106101 tokio:: fs:: rename ( temp_dir. path ( ) , dest_path) . await ?;
107102
108- Namespace :: from_config (
109- self . ns_config ,
110- self . to_config . clone ( ) ,
111- RestoreOption :: Latest ,
112- & self . to_namespace ,
113- Box :: new ( |_op| { } ) ,
114- self . resolve_attach . clone ( ) ,
115- self . store . clone ( ) ,
116- self . broadcaster ,
117- )
118- . await
119- . map_err ( |e| ForkError :: CreateNamespace ( Box :: new ( e) ) )
103+ self . store . make_namespace ( & self . to_namespace , self . to_config , RestoreOption :: Latest )
104+ . await
105+ . map_err ( |e| ForkError :: CreateNamespace ( Box :: new ( e) ) )
120106 }
121107
122108 /// Restores the database state from a local log file.
0 commit comments