Attempts to push a projection's extractable expressions further down. Returns `Some(new_subtree)` if the projection was pushed down or merged, `None` if there is nothing to push or the projection sits above a barrier.
(
input: &LogicalPlan,
alias_generator: &Arc<AliasGenerator>,
)
| 748 | /// Returns `Some(new_subtree)` if the projection was pushed down or merged, |
| 749 | /// `None` if there is nothing to push or the projection sits above a barrier. |
| 750 | fn try_push_input( |
| 751 | input: &LogicalPlan, |
| 752 | alias_generator: &Arc<AliasGenerator>, |
| 753 | ) -> Result<Option<LogicalPlan>> { |
| 754 | let LogicalPlan::Projection(proj) = input else { |
| 755 | return Ok(None); |
| 756 | }; |
| 757 | split_and_push_projection(proj, alias_generator) |
| 758 | } |
| 759 | |
| 760 | /// Splits a projection into extractable pieces, pushes them towards leaf |
| 761 | /// nodes, and adds a recovery projection if needed. |
no test coverage detected
searching dependent graphs…