pub trait SchemaProvider: Sync + Send {
    // Required methods
    fn as_any(&self) -> &dyn Any;
    fn table_names(&self) -> Vec<String>;
    fn table<'life0, 'life1, 'async_trait>(
        &'life0 self,
        name: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Option<Arc<dyn TableProvider>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn table_exist(&self, name: &str) -> bool;

    // Provided methods
    fn register_table(
        &self,
        name: String,
        table: Arc<dyn TableProvider>
    ) -> Result<Option<Arc<dyn TableProvider>>> { ... }
    fn deregister_table(
        &self,
        name: &str
    ) -> Result<Option<Arc<dyn TableProvider>>> { ... }
}
Expand description

Represents a schema, comprising a number of named tables.

Required Methods§

source

fn as_any(&self) -> &dyn Any

Returns the schema provider as Any so that it can be downcast to a specific implementation.

source

fn table_names(&self) -> Vec<String>

Retrieves the list of available table names in this schema.

source

fn table<'life0, 'life1, 'async_trait>( &'life0 self, name: &'life1 str ) -> Pin<Box<dyn Future<Output = Option<Arc<dyn TableProvider>>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Retrieves a specific table from the schema by name, provided it exists.

source

fn table_exist(&self, name: &str) -> bool

If supported by the implementation, checks the table exist in the schema provider or not. If no matched table in the schema provider, return false. Otherwise, return true.

Provided Methods§

source

fn register_table( &self, name: String, table: Arc<dyn TableProvider> ) -> Result<Option<Arc<dyn TableProvider>>>

If supported by the implementation, adds a new table to this schema. If a table of the same name existed before, it returns “Table already exists” error.

source

fn deregister_table(&self, name: &str) -> Result<Option<Arc<dyn TableProvider>>>

If supported by the implementation, removes an existing table from this schema and returns it. If no table of that name exists, returns Ok(None).

Implementors§