diff --git a/src/mito/src/engine.rs b/src/mito/src/engine.rs index 1264c4f2c0..36e0574b56 100644 --- a/src/mito/src/engine.rs +++ b/src/mito/src/engine.rs @@ -57,8 +57,8 @@ fn region_id(table_id: TableId, n: u32) -> RegionId { } #[inline] -fn table_dir(schema_name: &str, table_name: &str) -> String { - format!("{}/{}/", schema_name, table_name) +fn table_dir(schema_name: &str, table_name: &str, table_id: TableId) -> String { + format!("{}/{}_{}/", schema_name, table_name, table_id) } /// [TableEngine] implementation. @@ -317,7 +317,7 @@ impl MitoEngineInner { } } - let table_dir = table_dir(schema_name, table_name); + let table_dir = table_dir(schema_name, table_name, table_id); let opts = CreateOptions { parent_dir: table_dir.clone(), }; @@ -396,13 +396,13 @@ impl MitoEngineInner { return Ok(Some(table)); } + let table_id = request.table_id; let engine_ctx = StorageEngineContext::default(); - let table_dir = table_dir(schema_name, table_name); + let table_dir = table_dir(schema_name, table_name, table_id); let opts = OpenOptions { parent_dir: table_dir.to_string(), }; - let table_id = request.table_id; // TODO(dennis): supports multi regions; assert_eq!(request.region_numbers.len(), 1); let region_number = request.region_numbers[0]; @@ -642,8 +642,14 @@ mod tests { #[test] fn test_table_dir() { - assert_eq!("public/test_table/", table_dir("public", "test_table")); - assert_eq!("prometheus/demo/", table_dir("prometheus", "demo")); + assert_eq!( + "public/test_table_1024/", + table_dir("public", "test_table", 1024) + ); + assert_eq!( + "prometheus/demo_1024/", + table_dir("prometheus", "demo", 1024) + ); } #[tokio::test]