pub struct ClickHouseFunctionNode { /* private fields */ }
Expand description
Extension node for ClickHouse
function pushdown
This extension node serves as a wrapper only, so that during planner execution, the input plan
can be unparsed into sql and executed on ClickHouse
.
Implementations§
Trait Implementations§
Source§impl Clone for ClickHouseFunctionNode
impl Clone for ClickHouseFunctionNode
Source§fn clone(&self) -> ClickHouseFunctionNode
fn clone(&self) -> ClickHouseFunctionNode
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for ClickHouseFunctionNode
impl Debug for ClickHouseFunctionNode
Source§impl Hash for ClickHouseFunctionNode
impl Hash for ClickHouseFunctionNode
Source§impl PartialEq for ClickHouseFunctionNode
impl PartialEq for ClickHouseFunctionNode
Source§impl PartialOrd for ClickHouseFunctionNode
impl PartialOrd for ClickHouseFunctionNode
Source§impl UserDefinedLogicalNodeCore for ClickHouseFunctionNode
impl UserDefinedLogicalNodeCore for ClickHouseFunctionNode
Source§fn supports_limit_pushdown(&self) -> bool
fn supports_limit_pushdown(&self) -> bool
false
is the default behavior. It’s included here specifically to note that pushing limits
down causes a bug in Unparsing
where subquery aliases are wrapped in parentheses in a way
that causes an error in ClickHouse
. But, since the query will run on ClickHouse
,
optimization should be done there if possible.
Source§fn inputs(&self) -> Vec<&LogicalPlan>
fn inputs(&self) -> Vec<&LogicalPlan>
Return the logical plan’s inputs.
Source§fn schema(&self) -> &DFSchemaRef
fn schema(&self) -> &DFSchemaRef
Return the output schema of this logical plan node.
Source§fn expressions(&self) -> Vec<Expr>
fn expressions(&self) -> Vec<Expr>
Returns all expressions in the current logical plan node. This
should not include expressions of any inputs (aka
non-recursively). These expressions are used for optimizer
passes and rewrites.
Source§fn fmt_for_explain(&self, f: &mut Formatter<'_>) -> Result
fn fmt_for_explain(&self, f: &mut Formatter<'_>) -> Result
Write a single line, human readable string to
f
for use in explain plan. Read moreSource§fn with_exprs_and_inputs(
&self,
exprs: Vec<Expr>,
inputs: Vec<LogicalPlan>,
) -> Result<Self>
fn with_exprs_and_inputs( &self, exprs: Vec<Expr>, inputs: Vec<LogicalPlan>, ) -> Result<Self>
Create a new
UserDefinedLogicalNode
with the specified children
and expressions. This function is used during optimization
when the plan is being rewritten and a new instance of the
UserDefinedLogicalNode
must be created. Read moreSource§fn check_invariants(
&self,
_check: InvariantLevel,
_plan: &LogicalPlan,
) -> Result<()>
fn check_invariants( &self, _check: InvariantLevel, _plan: &LogicalPlan, ) -> Result<()>
Perform check of invariants for the extension node. Read more
impl Eq for ClickHouseFunctionNode
Auto Trait Implementations§
impl Freeze for ClickHouseFunctionNode
impl !RefUnwindSafe for ClickHouseFunctionNode
impl Send for ClickHouseFunctionNode
impl Sync for ClickHouseFunctionNode
impl Unpin for ClickHouseFunctionNode
impl !UnwindSafe for ClickHouseFunctionNode
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§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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 moreSource§impl<T> UserDefinedLogicalNode for Twhere
T: UserDefinedLogicalNodeCore,
impl<T> UserDefinedLogicalNode for Twhere
T: UserDefinedLogicalNodeCore,
Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Return a reference to self as Any, to support dynamic downcasting Read more
Source§fn inputs(&self) -> Vec<&LogicalPlan>
fn inputs(&self) -> Vec<&LogicalPlan>
Return the logical plan’s inputs.
Source§fn check_invariants(
&self,
check: InvariantLevel,
plan: &LogicalPlan,
) -> Result<(), DataFusionError>
fn check_invariants( &self, check: InvariantLevel, plan: &LogicalPlan, ) -> Result<(), DataFusionError>
Perform check of invariants for the extension node.
Source§fn expressions(&self) -> Vec<Expr>
fn expressions(&self) -> Vec<Expr>
Returns all expressions in the current logical plan node. This should
not include expressions of any inputs (aka non-recursively). Read more
Source§fn prevent_predicate_push_down_columns(&self) -> HashSet<String>
fn prevent_predicate_push_down_columns(&self) -> HashSet<String>
A list of output columns (e.g. the names of columns in
self.schema()) for which predicates can not be pushed below
this node without changing the output. Read more
Source§fn fmt_for_explain(&self, f: &mut Formatter<'_>) -> Result<(), Error>
fn fmt_for_explain(&self, f: &mut Formatter<'_>) -> Result<(), Error>
Write a single line, human readable string to
f
for use in explain plan. Read moreSource§fn with_exprs_and_inputs(
&self,
exprs: Vec<Expr>,
inputs: Vec<LogicalPlan>,
) -> Result<Arc<dyn UserDefinedLogicalNode>, DataFusionError>
fn with_exprs_and_inputs( &self, exprs: Vec<Expr>, inputs: Vec<LogicalPlan>, ) -> Result<Arc<dyn UserDefinedLogicalNode>, DataFusionError>
Create a new
UserDefinedLogicalNode
with the specified children
and expressions. This function is used during optimization
when the plan is being rewritten and a new instance of the
UserDefinedLogicalNode
must be created. Read moreSource§fn necessary_children_exprs(
&self,
output_columns: &[usize],
) -> Option<Vec<Vec<usize>>>
fn necessary_children_exprs( &self, output_columns: &[usize], ) -> Option<Vec<Vec<usize>>>
Returns the necessary input columns for this node required to compute
the columns in the output schema Read more
Source§fn dyn_eq(&self, other: &dyn UserDefinedLogicalNode) -> bool
fn dyn_eq(&self, other: &dyn UserDefinedLogicalNode) -> bool
fn dyn_ord(&self, other: &dyn UserDefinedLogicalNode) -> Option<Ordering>
Source§fn supports_limit_pushdown(&self) -> bool
fn supports_limit_pushdown(&self) -> bool
Returns
true
if a limit can be safely pushed down through this
UserDefinedLogicalNode
node. Read more