Path: blob/main/crates/polars-mem-engine/src/executors/unique.rs
8416 views
use super::*;12pub(crate) struct UniqueExec {3pub(crate) input: Box<dyn Executor>,4pub(crate) options: DistinctOptionsIR,5}67impl Executor for UniqueExec {8fn execute(&mut self, state: &mut ExecutionState) -> PolarsResult<DataFrame> {9state.should_stop()?;10#[cfg(debug_assertions)]11{12if state.verbose() {13eprintln!("run UniqueExec")14}15}16let df = self.input.execute(state)?;17let subset = self18.options19.subset20.as_ref()21.map(|v| v.iter().cloned().collect::<Vec<_>>());22let keep = self.options.keep_strategy;2324state.record(25|| {26df.unique_impl(27self.options.maintain_order,28subset,29keep,30self.options.slice,31)32},33Cow::Borrowed("unique()"),34)35}36}373839