Delete a specific graph's data from storage
(
&self,
driver: &dyn StorageDriver<Tree = Box<dyn StorageTree>>,
graph_name: &str,
)
| 289 | |
| 290 | /// Delete a specific graph's data from storage |
| 291 | pub fn delete_graph( |
| 292 | &self, |
| 293 | driver: &dyn StorageDriver<Tree = Box<dyn StorageTree>>, |
| 294 | graph_name: &str, |
| 295 | ) -> Result<(), Box<dyn std::error::Error>> { |
| 296 | use log::{debug, info}; |
| 297 | let graph_prefix = Self::normalize_graph_path(graph_name); |
| 298 | |
| 299 | // Delete graph-specific trees |
| 300 | let nodes_tree_name = format!("nodes_{}", graph_prefix); |
| 301 | let edges_tree_name = format!("edges_{}", graph_prefix); |
| 302 | let metadata_tree_name = format!("metadata_{}", graph_prefix); |
| 303 | |
| 304 | // Open and clear graph-specific trees if they exist |
| 305 | if let Ok(nodes_tree) = driver.open_tree(&nodes_tree_name) { |
| 306 | nodes_tree.clear()?; |
| 307 | debug!("Cleared nodes tree for graph '{}'", graph_name); |
| 308 | } |
| 309 | |
| 310 | if let Ok(edges_tree) = driver.open_tree(&edges_tree_name) { |
| 311 | edges_tree.clear()?; |
| 312 | debug!("Cleared edges tree for graph '{}'", graph_name); |
| 313 | } |
| 314 | |
| 315 | if let Ok(metadata_tree) = driver.open_tree(&metadata_tree_name) { |
| 316 | metadata_tree.clear()?; |
| 317 | debug!("Cleared metadata tree for graph '{}'", graph_name); |
| 318 | } |
| 319 | |
| 320 | // Flush changes to persistent storage |
| 321 | driver.flush()?; |
| 322 | |
| 323 | info!("Successfully deleted all data for graph '{}'", graph_name); |
| 324 | Ok(()) |
| 325 | } |
| 326 | |
| 327 | /// Save catalog provider data to persistent storage |
| 328 | pub fn save_catalog_provider( |
no test coverage detected