pub struct ListingSchemaProvider { /* private fields */ }Expand description
A SchemaProvider that scans an ObjectStore to automatically discover tables
A subfolder relationship is assumed, i.e. given:
- authority =
s3://host.example.com:3000 - path =
/data/tpch - factory =
DeltaTableFactory
A table called “customer” will be registered for the folder:
s3://host.example.com:3000/data/tpch/customer
assuming it contains valid deltalake data, i.e:
s3://host.example.com:3000/data/tpch/customer/part-00000-xxxx.snappy.parquets3://host.example.com:3000/data/tpch/customer/_delta_log/
Implementations§
Source§impl ListingSchemaProvider
impl ListingSchemaProvider
Sourcepub fn new(
authority: String,
path: Path,
factory: Arc<dyn TableProviderFactory>,
store: Arc<dyn ObjectStore>,
format: String,
) -> Self
pub fn new( authority: String, path: Path, factory: Arc<dyn TableProviderFactory>, store: Arc<dyn ObjectStore>, format: String, ) -> Self
Create a new ListingSchemaProvider
Arguments:
authority: The scheme (i.e. s3://) + host (i.e. example.com:3000)
path: The root path that contains subfolders which represent tables
factory: The TableProviderFactory to use to instantiate tables for each subfolder
store: The ObjectStore containing the table data
format: The FileFormat of the tables
has_header: Indicates whether the created external table has the has_header flag enabled
Trait Implementations§
Source§impl Debug for ListingSchemaProvider
impl Debug for ListingSchemaProvider
Source§impl SchemaProvider for ListingSchemaProvider
impl SchemaProvider for ListingSchemaProvider
Source§fn as_any(&self) -> &dyn Any
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>
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,
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 register_table(
&self,
name: String,
table: Arc<dyn TableProvider>,
) -> Result<Option<Arc<dyn TableProvider>>>
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. Read moreSource§fn deregister_table(&self, name: &str) -> Result<Option<Arc<dyn TableProvider>>>
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. Read moreSource§fn table_exist(&self, name: &str) -> bool
fn table_exist(&self, name: &str) -> bool
Returns true if table exist in the schema provider, false otherwise.
Source§fn owner_name(&self) -> Option<&str>
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
Auto Trait Implementations§
impl Freeze for ListingSchemaProvider
impl !RefUnwindSafe for ListingSchemaProvider
impl Send for ListingSchemaProvider
impl Sync for ListingSchemaProvider
impl Unpin for ListingSchemaProvider
impl !UnwindSafe for ListingSchemaProvider
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more