struct SessionContextProvider<'a> {
state: &'a SessionState,
tables: HashMap<ResolvedTableReference, Arc<dyn TableSource>>,
}Expand description
Adapter that implements the ContextProvider trait for a SessionState
This is used so the SQL planner can access the state of the session without
having a direct dependency on the SessionState struct (and core crate)
Fields§
§state: &'a SessionState§tables: HashMap<ResolvedTableReference, Arc<dyn TableSource>>Trait Implementations§
Source§impl ContextProvider for SessionContextProvider<'_>
impl ContextProvider for SessionContextProvider<'_>
Source§fn create_cte_work_table(
&self,
name: &str,
schema: SchemaRef,
) -> Result<Arc<dyn TableSource>>
fn create_cte_work_table( &self, name: &str, schema: SchemaRef, ) -> Result<Arc<dyn TableSource>>
Create a new CTE work table for a recursive CTE logical plan This table will be used in conjunction with a Worktable physical plan to read and write each iteration of a recursive CTE
Source§fn get_expr_planners(&self) -> &[Arc<dyn ExprPlanner>]
fn get_expr_planners(&self) -> &[Arc<dyn ExprPlanner>]
Return
ExprPlanner extensions for planning expressionsSource§fn get_type_planner(&self) -> Option<Arc<dyn TypePlanner>>
fn get_type_planner(&self) -> Option<Arc<dyn TypePlanner>>
Return
TypePlanner extensions for planning data typesSource§fn get_table_source(&self, name: TableReference) -> Result<Arc<dyn TableSource>>
fn get_table_source(&self, name: TableReference) -> Result<Arc<dyn TableSource>>
Returns a table by reference, if it exists
Source§fn get_table_function_source(
&self,
name: &str,
args: Vec<Expr>,
) -> Result<Arc<dyn TableSource>>
fn get_table_function_source( &self, name: &str, args: Vec<Expr>, ) -> Result<Arc<dyn TableSource>>
Getter for a table function
Source§fn 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
Source§fn 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
Source§fn 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
Source§fn 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 Read more
Source§fn options(&self) -> &ConfigOptions
fn options(&self) -> &ConfigOptions
Return overall configuration options
Source§fn udaf_names(&self) -> Vec<String>
fn udaf_names(&self) -> Vec<String>
Return all aggregate function names
Source§fn udwf_names(&self) -> Vec<String>
fn udwf_names(&self) -> Vec<String>
Return all window function names
Auto Trait Implementations§
impl<'a> Freeze for SessionContextProvider<'a>
impl<'a> !RefUnwindSafe for SessionContextProvider<'a>
impl<'a> Send for SessionContextProvider<'a>
impl<'a> Sync for SessionContextProvider<'a>
impl<'a> Unpin for SessionContextProvider<'a>
impl<'a> !UnwindSafe for SessionContextProvider<'a>
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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