Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pola-rs
GitHub Repository: pola-rs/polars
Path: blob/main/crates/polars-mem-engine/src/executors/ext_context.rs
6940 views
1
use super::*;
2
3
pub struct ExternalContext {
4
pub input: Box<dyn Executor>,
5
pub contexts: Vec<Box<dyn Executor>>,
6
}
7
8
impl Executor for ExternalContext {
9
fn execute(&mut self, state: &mut ExecutionState) -> PolarsResult<DataFrame> {
10
#[cfg(debug_assertions)]
11
{
12
if state.verbose() {
13
eprintln!("run ExternalContext")
14
}
15
}
16
// we evaluate contexts first as input may has pushed exprs.
17
let contexts = self
18
.contexts
19
.iter_mut()
20
.map(|e| e.execute(state))
21
.collect::<PolarsResult<Vec<_>>>()?;
22
state.ext_contexts = Arc::new(contexts);
23
let df = self.input.execute(state)?;
24
25
Ok(df)
26
}
27
}
28
29