@@ -38,6 +38,7 @@ use crate::table::{NativeTable, TableDefinition, WriteOptions};
38
38
use crate :: utils:: validate_table_name;
39
39
use crate :: Table ;
40
40
pub use lance_encoding:: version:: LanceFileVersion ;
41
+ use lance_table:: io:: commit:: commit_handler_from_url;
41
42
42
43
pub const LANCE_FILE_EXTENSION : & str = "lance" ;
43
44
@@ -1036,6 +1037,7 @@ impl ConnectionInternal for Database {
1036
1037
} ;
1037
1038
1038
1039
let mut write_params = options. write_options . lance_write_params . unwrap_or_default ( ) ;
1040
+
1039
1041
if matches ! ( & options. mode, CreateTableMode :: Overwrite ) {
1040
1042
write_params. mode = WriteMode :: Overwrite ;
1041
1043
}
@@ -1122,7 +1124,7 @@ impl ConnectionInternal for Database {
1122
1124
let dir_name = format ! ( "{}.{}" , name, LANCE_EXTENSION ) ;
1123
1125
let full_path = self . base_path . child ( dir_name. clone ( ) ) ;
1124
1126
self . object_store
1125
- . remove_dir_all ( full_path)
1127
+ . remove_dir_all ( full_path. clone ( ) )
1126
1128
. await
1127
1129
. map_err ( |err| match err {
1128
1130
// this error is not lance::Error::DatasetNotFound,
@@ -1132,6 +1134,19 @@ impl ConnectionInternal for Database {
1132
1134
} ,
1133
1135
_ => Error :: from ( err) ,
1134
1136
} ) ?;
1137
+
1138
+ let object_store_params = ObjectStoreParams {
1139
+ storage_options : Some ( self . storage_options . clone ( ) ) ,
1140
+ ..Default :: default ( )
1141
+ } ;
1142
+ let mut uri = self . uri . clone ( ) ;
1143
+ if let Some ( query_string) = & self . query_string {
1144
+ uri. push_str ( & format ! ( "?{}" , query_string) ) ;
1145
+ }
1146
+ let commit_handler = commit_handler_from_url ( & uri, & Some ( object_store_params) )
1147
+ . await
1148
+ . unwrap ( ) ;
1149
+ commit_handler. delete ( & full_path) . await . unwrap ( ) ;
1135
1150
Ok ( ( ) )
1136
1151
}
1137
1152
0 commit comments