Path: blob/main/crates/polars-mem-engine/src/executors/unique.rs
6940 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|| {26if df.is_empty() {27return Ok(df);28}2930df.unique_impl(31self.options.maintain_order,32subset,33keep,34self.options.slice,35)36},37Cow::Borrowed("unique()"),38)39}40}414243