in src/stage.rs [144:160]
fn with_new_children(
self: std::sync::Arc<Self>,
children: Vec<std::sync::Arc<dyn ExecutionPlan>>,
) -> datafusion::error::Result<std::sync::Arc<dyn ExecutionPlan>> {
// TODO: handle more general case
assert_eq!(children.len(), 1);
let child = children[0].clone();
// as the plan tree is rearranged we want to remember the original partitioning that we
// had, even if we get new inputs. This is because RayStageReaderExecs, when created by
// the RayDataFrame will need to know the original partitioning
Ok(Arc::new(DFRayStageExec::new_with_properties(
child,
self.stage_id,
self.properties.clone(),
)))
}