MCPcopy Create free account
hub / github.com/apache/datafusion / try_push_input

Function try_push_input

datafusion/optimizer/src/extract_leaf_expressions.rs:750–758  ·  view source on GitHub ↗

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>,
)

Source from the content-addressed store, hash-verified

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.
750fn 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.

Callers 3

rewriteMethod · 0.85
push_extraction_pairsFunction · 0.85
try_push_into_inputsFunction · 0.85

Calls 1

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…