Path: blob/main/crates/polars-mem-engine/src/executors/ext_context.rs
6940 views
use super::*;12pub struct ExternalContext {3pub input: Box<dyn Executor>,4pub contexts: Vec<Box<dyn Executor>>,5}67impl Executor for ExternalContext {8fn execute(&mut self, state: &mut ExecutionState) -> PolarsResult<DataFrame> {9#[cfg(debug_assertions)]10{11if state.verbose() {12eprintln!("run ExternalContext")13}14}15// we evaluate contexts first as input may has pushed exprs.16let contexts = self17.contexts18.iter_mut()19.map(|e| e.execute(state))20.collect::<PolarsResult<Vec<_>>>()?;21state.ext_contexts = Arc::new(contexts);22let df = self.input.execute(state)?;2324Ok(df)25}26}272829