fn try_push_projection_order_by(
    expr: &mut HirRelationExpr,
    project: &mut Vec<usize>,
    order_by: &mut Vec<ColumnOrder>
) -> bool
Expand description

Attempts to push a projection through an order by.

The returned bool indicates whether the pushdown was successful or not. Successful pushdown requires that all the columns referenced in order_by are included in project.

When successful, expr is wrapped in a projection node, order_by is rewritten to account for the pushed-down projection, and project is replaced with the trivial projection. When unsuccessful, no changes are made to any of the inputs.