pub struct FilterNullJoinKeys {}Expand description
The FilterNullJoinKeys rule will identify joins with equi-join conditions
where the join key is nullable and then insert an IsNotNull filter on the nullable side since null values
can never match.
Trait Implementations§
Source§impl Debug for FilterNullJoinKeys
impl Debug for FilterNullJoinKeys
Source§impl Default for FilterNullJoinKeys
impl Default for FilterNullJoinKeys
Source§fn default() -> FilterNullJoinKeys
fn default() -> FilterNullJoinKeys
Returns the “default value” for a type. Read more
Source§impl OptimizerRule for FilterNullJoinKeys
impl OptimizerRule for FilterNullJoinKeys
Source§fn supports_rewrite(&self) -> bool
fn supports_rewrite(&self) -> bool
👎Deprecated since 47.0.0: This method is no longer used
Does this rule support rewriting owned plans (rather than by reference)?
Source§fn apply_order(&self) -> Option<ApplyOrder>
fn apply_order(&self) -> Option<ApplyOrder>
How should the rule be applied by the optimizer? See comments on
ApplyOrder for details. Read moreSource§fn rewrite(
&self,
plan: LogicalPlan,
config: &dyn OptimizerConfig,
) -> Result<Transformed<LogicalPlan>>
fn rewrite( &self, plan: LogicalPlan, config: &dyn OptimizerConfig, ) -> Result<Transformed<LogicalPlan>>
Try to rewrite
plan to an optimized form, returning Transformed::yes
if the plan was rewritten and Transformed::no if it was not.Auto Trait Implementations§
impl Freeze for FilterNullJoinKeys
impl RefUnwindSafe for FilterNullJoinKeys
impl Send for FilterNullJoinKeys
impl Sync for FilterNullJoinKeys
impl Unpin for FilterNullJoinKeys
impl UnwindSafe for FilterNullJoinKeys
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