pub struct ResolveLambdaVariables {}Expand description
Resolve LambdaVariable references into bound lambda parameters.
DataFusion’s SQL planner resolves lambda variables inline as it plans a
higher-order function call, so SQL-built plans never carry unresolved
variables. Plans assembled programmatically through the Python expression
builder (e.g. array_transform(col("xs"), lambda_(["v"], lambda_var("v"))))
do carry them, and nothing in the default analyzer resolves them. This rule
runs LogicalPlan::resolve_lambda_variables so both construction paths
reach the optimizer with bound lambdas.
Implementations§
Trait Implementations§
Source§impl AnalyzerRule for ResolveLambdaVariables
impl AnalyzerRule for ResolveLambdaVariables
Source§fn analyze(
&self,
plan: LogicalPlan,
_config: &ConfigOptions,
) -> Result<LogicalPlan>
fn analyze( &self, plan: LogicalPlan, _config: &ConfigOptions, ) -> Result<LogicalPlan>
Rewrite
planSource§impl Debug for ResolveLambdaVariables
impl Debug for ResolveLambdaVariables
Auto Trait Implementations§
impl Freeze for ResolveLambdaVariables
impl RefUnwindSafe for ResolveLambdaVariables
impl Send for ResolveLambdaVariables
impl Sync for ResolveLambdaVariables
impl Unpin for ResolveLambdaVariables
impl UnsafeUnpin for ResolveLambdaVariables
impl UnwindSafe for ResolveLambdaVariables
Blanket Implementations§
Source§impl<Source> AccessAs for Source
impl<Source> AccessAs for Source
impl<T> Allocation for T
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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