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§
Sourcefn swap_for_swapped_children(&self) -> Self
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.
Sourcefn update_for_child_projections(
&self,
projected_left_exprs: &[ProjectionExpr],
projected_right_exprs: &[ProjectionExpr],
) -> Result<Option<Self>>
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.