pub trait ContextProvider {
Show 14 methods
    // Required methods
    fn get_table_source(
        &self,
        name: TableReference,
    ) -> Result<Arc<dyn TableSource>, DataFusionError>;
    fn get_function_meta(&self, name: &str) -> Option<Arc<ScalarUDF>>;
    fn get_aggregate_meta(&self, name: &str) -> Option<Arc<AggregateUDF>>;
    fn get_window_meta(&self, name: &str) -> Option<Arc<WindowUDF>>;
    fn get_variable_type(&self, variable_names: &[String]) -> Option<DataType>;
    fn options(&self) -> &ConfigOptions;
    fn udf_names(&self) -> Vec<String>;
    fn udaf_names(&self) -> Vec<String>;
    fn udwf_names(&self) -> Vec<String>;
    // Provided methods
    fn get_file_type(
        &self,
        _ext: &str,
    ) -> Result<Arc<dyn FileType>, DataFusionError> { ... }
    fn get_table_function_source(
        &self,
        _name: &str,
        _args: Vec<Expr>,
    ) -> Result<Arc<dyn TableSource>, DataFusionError> { ... }
    fn create_cte_work_table(
        &self,
        _name: &str,
        _schema: Arc<Schema>,
    ) -> Result<Arc<dyn TableSource>, DataFusionError> { ... }
    fn get_expr_planners(&self) -> &[Arc<dyn ExprPlanner>] { ... }
    fn get_type_planner(&self) -> Option<Arc<dyn TypePlanner>> { ... }
}Expand description
Provides the SQL query planner meta-data about tables and
functions referenced in SQL statements, without a direct dependency on the
datafusion Catalog structures such as TableProvider
Required Methods§
Sourcefn get_table_source(
    &self,
    name: TableReference,
) -> Result<Arc<dyn TableSource>, DataFusionError>
 
fn get_table_source( &self, name: TableReference, ) -> Result<Arc<dyn TableSource>, DataFusionError>
Returns a table by reference, if it exists
Sourcefn get_function_meta(&self, name: &str) -> Option<Arc<ScalarUDF>>
 
fn get_function_meta(&self, name: &str) -> Option<Arc<ScalarUDF>>
Return the scalar function with a given name, if any
Sourcefn get_aggregate_meta(&self, name: &str) -> Option<Arc<AggregateUDF>>
 
fn get_aggregate_meta(&self, name: &str) -> Option<Arc<AggregateUDF>>
Return the aggregate function with a given name, if any
Sourcefn get_window_meta(&self, name: &str) -> Option<Arc<WindowUDF>>
 
fn get_window_meta(&self, name: &str) -> Option<Arc<WindowUDF>>
Return the window function with a given name, if any
Sourcefn get_variable_type(&self, variable_names: &[String]) -> Option<DataType>
 
fn get_variable_type(&self, variable_names: &[String]) -> Option<DataType>
Return the system/user-defined variable type, if any
A user defined variable is typically accessed via @var_name
Sourcefn options(&self) -> &ConfigOptions
 
fn options(&self) -> &ConfigOptions
Return overall configuration options
Sourcefn udaf_names(&self) -> Vec<String>
 
fn udaf_names(&self) -> Vec<String>
Return all aggregate function names
Sourcefn udwf_names(&self) -> Vec<String>
 
fn udwf_names(&self) -> Vec<String>
Return all window function names
Provided Methods§
Sourcefn get_file_type(
    &self,
    _ext: &str,
) -> Result<Arc<dyn FileType>, DataFusionError>
 
fn get_file_type( &self, _ext: &str, ) -> Result<Arc<dyn FileType>, DataFusionError>
Return the type of a file based on its extension (e.g. .parquet)
This is used to plan COPY statements
Sourcefn get_table_function_source(
    &self,
    _name: &str,
    _args: Vec<Expr>,
) -> Result<Arc<dyn TableSource>, DataFusionError>
 
fn get_table_function_source( &self, _name: &str, _args: Vec<Expr>, ) -> Result<Arc<dyn TableSource>, DataFusionError>
Getter for a table function
Sourcefn create_cte_work_table(
    &self,
    _name: &str,
    _schema: Arc<Schema>,
) -> Result<Arc<dyn TableSource>, DataFusionError>
 
fn create_cte_work_table( &self, _name: &str, _schema: Arc<Schema>, ) -> Result<Arc<dyn TableSource>, DataFusionError>
Provides an intermediate table that is used to store the results of a CTE during execution
CTE stands for “Common Table Expression”
§Notes
We don’t directly implement this in SqlToRel as implementing this function
often requires access to a table that contains
execution-related types that can’t be a direct dependency
of the sql crate (for example CteWorkTable).
The ContextProvider provides a way to “hide” this dependency.
Sourcefn get_expr_planners(&self) -> &[Arc<dyn ExprPlanner>]
 
fn get_expr_planners(&self) -> &[Arc<dyn ExprPlanner>]
Return ExprPlanner extensions for planning expressions
Sourcefn get_type_planner(&self) -> Option<Arc<dyn TypePlanner>>
 
fn get_type_planner(&self) -> Option<Arc<dyn TypePlanner>>
Return TypePlanner extensions for planning data types