pub struct ClickHouseContextProvider { /* private fields */ }
Expand description
Custom ContextProvider
Required since DataFusion
will throw an error on unrecognized functions and the goal is to
preserve the Expr structure.
Implementations§
Source§impl ClickHouseContextProvider
impl ClickHouseContextProvider
pub fn new( state: SessionState, tables: HashMap<ResolvedTableReference, Arc<dyn TableSource>>, ) -> Self
pub fn with_expr_planner(self, planner: Arc<dyn ExprPlanner>) -> Self
pub fn with_type_planner(self, type_planner: Arc<dyn TypePlanner>) -> Self
Trait Implementations§
Source§impl ContextProvider for ClickHouseContextProvider
impl ContextProvider for ClickHouseContextProvider
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_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_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_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 Freeze for ClickHouseContextProvider
impl !RefUnwindSafe for ClickHouseContextProvider
impl Send for ClickHouseContextProvider
impl Sync for ClickHouseContextProvider
impl Unpin for ClickHouseContextProvider
impl !UnwindSafe for ClickHouseContextProvider
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> 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