deltalake_core/data_catalog/
mod.rs1use std::fmt::Debug;
4
5#[cfg(feature = "datafusion")]
6pub mod storage;
7
8pub type DataCatalogResult<T> = Result<T, DataCatalogError>;
10
11#[derive(thiserror::Error, Debug)]
13pub enum DataCatalogError {
14 #[error("Error in {catalog} catalog: {source}")]
16 Generic {
17 catalog: &'static str,
19 source: Box<dyn std::error::Error + Send + Sync + 'static>,
21 },
22
23 #[error("This data catalog doesn't exist: {data_catalog}")]
25 InvalidDataCatalog {
26 data_catalog: String,
28 },
29
30 #[error("Unknown configuration key '{catalog}' in '{key}' catalog.")]
32 UnknownConfigKey {
33 catalog: &'static str,
35
36 key: String,
38 },
39
40 #[error("Error in request: {source}")]
41 RequestError {
42 source: Box<dyn std::error::Error + Send + Sync + 'static>,
43 },
44}
45
46#[async_trait::async_trait]
48pub trait DataCatalog: Send + Sync + Debug {
49 type Error;
50
51 async fn get_table_storage_location(
53 &self,
54 catalog_id: Option<String>,
55 database_name: &str,
56 table_name: &str,
57 ) -> Result<String, Self::Error>;
58}