Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
SchemaProvider in datafusion_catalog - Rust
[go: Go Back, main page]

Trait SchemaProvider

Source
pub trait SchemaProvider:
    Debug
    + 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 = Result<Option<Arc<dyn TableProvider>>, DataFusionError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn table_exist(&self, name: &str) -> bool;

    // Provided methods
    fn owner_name(&self) -> Option<&str> { ... }
    fn table_type<'life0, 'life1, 'async_trait>(
        &'life0 self,
        name: &'life1 str,
    ) -> Pin<Box<dyn Future<Output = Result<Option<TableType>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait { ... }
    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.

Please see CatalogProvider for details of implementing a custom catalog.

Required Methods§

Source

fn as_any(&self) -> &dyn Any

Returns this SchemaProvider 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 = Result<Option<Arc<dyn TableProvider>>, DataFusionError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Retrieves a specific table from the schema by name, if it exists, otherwise returns None.

Source

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

Returns true if table exist in the schema provider, false otherwise.

Provided Methods§

Source

fn owner_name(&self) -> Option<&str>

Returns the owner of the Schema, default is None. This value is reported as part of `information_tables.schemata

Source

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

Retrieves the type of a specific table from the schema by name, if it exists, otherwise returns None. Implementations for which this operation is cheap but Self::table is expensive can override this to improve operations that only need the type, e.g. SELECT * FROM information_schema.tables.

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 named name to this schema.

If a table of the same name was already registered, returns “Table already exists” error.

Source

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

If supported by the implementation, removes the name table from this schema and returns the previously registered TableProvider, if any.

If no name table exists, returns Ok(None).

Implementors§