pub struct SQLSchemaProvider { /* private fields */ }
Expand description
An in-memory schema provider for SQL tables.
Implementations§
Source§impl SQLSchemaProvider
impl SQLSchemaProvider
Sourcepub async fn new(provider: Arc<SQLFederationProvider>) -> Result<Self>
pub async fn new(provider: Arc<SQLFederationProvider>) -> Result<Self>
Creates a new SQLSchemaProvider from a SQLFederationProvider
.
Initializes the schema provider by fetching table names and schema from the federation provider’s executor,
Sourcepub async fn new_with_tables<T: AsRef<str>>(
provider: Arc<SQLFederationProvider>,
tables: impl IntoIterator<Item = T>,
) -> Result<Self>
pub async fn new_with_tables<T: AsRef<str>>( provider: Arc<SQLFederationProvider>, tables: impl IntoIterator<Item = T>, ) -> Result<Self>
Creates a new SQLSchemaProvider from a SQLFederationProvider and a list of table references. Fetches the schema for each table using the executor’s implementation.
Sourcepub fn new_with_custom_tables(
provider: Arc<SQLFederationProvider>,
tables: Vec<Arc<dyn SQLTable>>,
) -> Self
pub fn new_with_custom_tables( provider: Arc<SQLFederationProvider>, tables: Vec<Arc<dyn SQLTable>>, ) -> Self
Creates a new SQLSchemaProvider from a SQLFederationProvider and a list of custom table instances.
pub async fn new_with_table_references( provider: Arc<SQLFederationProvider>, tables: Vec<RemoteTableRef>, ) -> Result<Self>
Trait Implementations§
Source§impl Debug for SQLSchemaProvider
impl Debug for SQLSchemaProvider
Source§impl SchemaProvider for SQLSchemaProvider
impl SchemaProvider for SQLSchemaProvider
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>>>> + 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>>>> + 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
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
Source§fn table_type<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<TableType>, DataFusionError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn table_type<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<TableType>, DataFusionError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: '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>>, DataFusionError>
fn register_table( &self, name: String, table: Arc<dyn TableProvider>, ) -> Result<Option<Arc<dyn TableProvider>>, DataFusionError>
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>>, DataFusionError>
fn deregister_table( &self, name: &str, ) -> Result<Option<Arc<dyn TableProvider>>, DataFusionError>
If supported by the implementation, removes the
name
table from this
schema and returns the previously registered TableProvider
, if any. Read moreAuto Trait Implementations§
impl Freeze for SQLSchemaProvider
impl !RefUnwindSafe for SQLSchemaProvider
impl Send for SQLSchemaProvider
impl Sync for SQLSchemaProvider
impl Unpin for SQLSchemaProvider
impl !UnwindSafe for SQLSchemaProvider
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