Skip to main content

SpatialPredicateTrait

Trait SpatialPredicateTrait 

Source
pub trait SpatialPredicateTrait: Sized {
    // Required methods
    fn swap_for_swapped_children(&self) -> Self;
    fn update_for_child_projections(
        &self,
        projected_left_exprs: &[ProjectionExpr],
        projected_right_exprs: &[ProjectionExpr],
    ) -> Result<Option<Self>>;
}
Expand description

Common operations needed by the planner/executor to keep spatial predicates valid when join inputs are swapped or projected.

Required Methods§

Source

fn swap_for_swapped_children(&self) -> Self

Returns a semantically equivalent predicate after the join children are swapped.

Used by SpatialJoinExec::swap_inputs to keep the predicate aligned with the new left/right inputs.

Source

fn update_for_child_projections( &self, projected_left_exprs: &[ProjectionExpr], projected_right_exprs: &[ProjectionExpr], ) -> Result<Option<Self>>

Rewrites the predicate to reference projected child expressions.

Returns Ok(None) when the predicate cannot be expressed using the projected inputs (so projection pushdown must be skipped).

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§