pub struct SqlTable<T: 'static, P: 'static> {
pub table_reference: TableReference,
/* private fields */
}Fields§
§table_reference: TableReferenceImplementations§
source§impl<T, P> SqlTable<T, P>
impl<T, P> SqlTable<T, P>
pub fn create_federated_table_provider( self: Arc<Self>, ) -> DataFusionResult<FederatedTableProviderAdaptor>
source§impl<T, P> SqlTable<T, P>
impl<T, P> SqlTable<T, P>
pub async fn new( name: &'static str, pool: &Arc<dyn DbConnectionPool<T, P> + Send + Sync>, table_reference: impl Into<TableReference>, engine: Option<Engine>, ) -> Result<Self>
pub fn new_with_schema( name: &'static str, pool: &Arc<dyn DbConnectionPool<T, P> + Send + Sync>, schema: impl Into<SchemaRef>, table_reference: impl Into<TableReference>, engine: Option<Engine>, ) -> Self
pub fn name(&self) -> &'static str
pub fn clone_pool(&self) -> Arc<dyn DbConnectionPool<T, P> + Send + Sync>
Trait Implementations§
source§impl<T, P> SQLExecutor for SqlTable<T, P>
impl<T, P> SQLExecutor for SqlTable<T, P>
source§fn compute_context(&self) -> Option<String>
fn compute_context(&self) -> Option<String>
Executor compute context allows differentiating the remote compute context
such as authorization or active database. Read more
source§fn dialect(&self) -> Arc<dyn Dialect>
fn dialect(&self) -> Arc<dyn Dialect>
The specific SQL dialect (currently supports ‘sqlite’, ‘postgres’, ‘flight’)
source§fn execute(
&self,
query: &str,
schema: SchemaRef,
) -> DataFusionResult<SendableRecordBatchStream>
fn execute( &self, query: &str, schema: SchemaRef, ) -> DataFusionResult<SendableRecordBatchStream>
Execute a SQL query
source§fn table_names<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = DataFusionResult<Vec<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn table_names<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = DataFusionResult<Vec<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Returns the tables provided by the remote
source§fn get_table_schema<'life0, 'life1, 'async_trait>(
&'life0 self,
table_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = DataFusionResult<SchemaRef>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_table_schema<'life0, 'life1, 'async_trait>(
&'life0 self,
table_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = DataFusionResult<SchemaRef>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Returns the schema of table_name within this
SQLExecutorsource§fn ast_analyzer(
&self,
) -> Option<Box<dyn Fn(Statement) -> Result<Statement, DataFusionError>>>
fn ast_analyzer( &self, ) -> Option<Box<dyn Fn(Statement) -> Result<Statement, DataFusionError>>>
Returns an AST analyzer specific for this engine to modify the AST before execution
source§impl<T, P> TableProvider for SqlTable<T, P>
impl<T, P> TableProvider for SqlTable<T, P>
source§fn as_any(&self) -> &dyn Any
fn as_any(&self) -> &dyn Any
Returns the table provider as
Any so that it can be
downcast to a specific implementation.source§fn table_type(&self) -> TableType
fn table_type(&self) -> TableType
Get the type of this table for metadata/catalog purposes.
source§fn supports_filters_pushdown(
&self,
filters: &[&Expr],
) -> DataFusionResult<Vec<TableProviderFilterPushDown>>
fn supports_filters_pushdown( &self, filters: &[&Expr], ) -> DataFusionResult<Vec<TableProviderFilterPushDown>>
Specify if DataFusion should provide filter expressions to the
TableProvider to apply during the scan. Read more
source§fn scan<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_state: &'life1 dyn Session,
projection: Option<&'life2 Vec<usize>>,
filters: &'life3 [Expr],
limit: Option<usize>,
) -> Pin<Box<dyn Future<Output = DataFusionResult<Arc<dyn ExecutionPlan>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn scan<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_state: &'life1 dyn Session,
projection: Option<&'life2 Vec<usize>>,
filters: &'life3 [Expr],
limit: Option<usize>,
) -> Pin<Box<dyn Future<Output = DataFusionResult<Arc<dyn ExecutionPlan>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Create an
ExecutionPlan for scanning the table with optionally
specified projection, filter and limit, described below. Read moresource§fn constraints(&self) -> Option<&Constraints>
fn constraints(&self) -> Option<&Constraints>
Get a reference to the constraints of the table.
Returns: Read more
source§fn get_table_definition(&self) -> Option<&str>
fn get_table_definition(&self) -> Option<&str>
Get the create statement used to create this table, if available.
source§fn get_logical_plan(&self) -> Option<Cow<'_, LogicalPlan>>
fn get_logical_plan(&self) -> Option<Cow<'_, LogicalPlan>>
Get the
LogicalPlan of this table, if available.source§fn get_column_default(&self, _column: &str) -> Option<&Expr>
fn get_column_default(&self, _column: &str) -> Option<&Expr>
Get the default value for a column, if available.
source§fn statistics(&self) -> Option<Statistics>
fn statistics(&self) -> Option<Statistics>
Get statistics for this table, if available
source§fn insert_into<'life0, 'life1, 'async_trait>(
&'life0 self,
_state: &'life1 dyn Session,
_input: Arc<dyn ExecutionPlan>,
_overwrite: bool,
) -> Pin<Box<dyn Future<Output = Result<Arc<dyn ExecutionPlan>, DataFusionError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn insert_into<'life0, 'life1, 'async_trait>(
&'life0 self,
_state: &'life1 dyn Session,
_input: Arc<dyn ExecutionPlan>,
_overwrite: bool,
) -> Pin<Box<dyn Future<Output = Result<Arc<dyn ExecutionPlan>, DataFusionError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Return an
ExecutionPlan to insert data into this table, if
supported. Read moreAuto Trait Implementations§
impl<T, P> Freeze for SqlTable<T, P>
impl<T, P> !RefUnwindSafe for SqlTable<T, P>
impl<T, P> Send for SqlTable<T, P>
impl<T, P> Sync for SqlTable<T, P>
impl<T, P> Unpin for SqlTable<T, P>
impl<T, P> !UnwindSafe for SqlTable<T, P>
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit)source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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