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

Function split_impl

datafusion/physical-expr/src/utils/mod.rs:142–157  ·  view source on GitHub ↗
(
    operator: Operator,
    predicate: &'a Arc<dyn PhysicalExpr>,
    mut exprs: Vec<&'a Arc<dyn PhysicalExpr>>,
)

Source from the content-addressed store, hash-verified

140}
141
142fn split_impl<'a>(
143 operator: Operator,
144 predicate: &'a Arc<dyn PhysicalExpr>,
145 mut exprs: Vec<&'a Arc<dyn PhysicalExpr>>,
146) -> Vec<&'a Arc<dyn PhysicalExpr>> {
147 match predicate.downcast_ref::<BinaryExpr>() {
148 Some(binary) if binary.op() == &operator => {
149 let exprs = split_impl(operator, binary.left(), exprs);
150 split_impl(operator, binary.right(), exprs)
151 }
152 Some(_) | None => {
153 exprs.push(predicate);
154 exprs
155 }
156 }
157}
158
159/// This function maps back requirement after ProjectionExec
160/// to the Executor for its input.

Callers 2

split_conjunctionFunction · 0.85
split_disjunctionFunction · 0.85

Calls 4

opMethod · 0.45
leftMethod · 0.45
rightMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…