Struct transform::projection_pushdown::ProjectionPushdown [−][src]
pub struct ProjectionPushdown;
Expand description
Pushes projections down through other operators.
Implementations
Pushes the desired_projection
down through relation
.
This action transforms relation
to a MirRelationExpr
equivalent to
relation.project(desired_projection)
.
desired_projection
is expected to consist of unique columns.
pub fn update_projection_around_get(
&self,
relation: &mut MirRelationExpr,
applied_projections: &HashMap<Id, Vec<usize>>
)
pub fn update_projection_around_get(
&self,
relation: &mut MirRelationExpr,
applied_projections: &HashMap<Id, Vec<usize>>
)
When we push the desired_value_projection
at value
,
the columns returned by Get(get_id)
will change, so we need
to permute Project
s around Get(get_id)
.
Trait Implementations
fn transform(
&self,
relation: &mut MirRelationExpr,
_: TransformArgs<'_>
) -> Result<(), TransformError>
fn transform(
&self,
relation: &mut MirRelationExpr,
_: TransformArgs<'_>
) -> Result<(), TransformError>
Transform a relation into a functionally equivalent relation.
Auto Trait Implementations
impl RefUnwindSafe for ProjectionPushdown
impl Send for ProjectionPushdown
impl Sync for ProjectionPushdown
impl Unpin for ProjectionPushdown
impl UnwindSafe for ProjectionPushdown
Blanket Implementations
Mutably borrows from an owned value. Read more
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more