pub(crate) struct NthValueEvaluator {
state: NthValueState,
ignore_nulls: bool,
n: i64,
}Fields§
§state: NthValueState§ignore_nulls: bool§n: i64Trait Implementations§
Source§impl Debug for NthValueEvaluator
impl Debug for NthValueEvaluator
Source§impl PartitionEvaluator for NthValueEvaluator
impl PartitionEvaluator for NthValueEvaluator
Source§fn memoize(&mut self, state: &mut WindowAggState) -> Result<()>
fn memoize(&mut self, state: &mut WindowAggState) -> Result<()>
When the window frame has a fixed beginning (e.g UNBOUNDED PRECEDING), for some functions such as FIRST_VALUE, LAST_VALUE and NTH_VALUE, we can memoize the result. Once result is calculated, it will always stay same. Hence, we do not need to keep past data as we process the entire dataset.
Source§fn evaluate(
&mut self,
values: &[ArrayRef],
range: &Range<usize>,
) -> Result<ScalarValue>
fn evaluate( &mut self, values: &[ArrayRef], range: &Range<usize>, ) -> Result<ScalarValue>
Evaluate window function on a range of rows in an input
partition.x Read more
Source§fn supports_bounded_execution(&self) -> bool
fn supports_bounded_execution(&self) -> bool
Can the window function be incrementally computed using
bounded memory? Read more
Source§fn uses_window_frame(&self) -> bool
fn uses_window_frame(&self) -> bool
Does the window function use the values from the window frame,
if one is specified? Read more
Source§fn get_range(
&self,
idx: usize,
_n_rows: usize,
) -> Result<Range<usize>, DataFusionError>
fn get_range( &self, idx: usize, _n_rows: usize, ) -> Result<Range<usize>, DataFusionError>
If
uses_window_frame flag is false. This method is used to
calculate required range for the window function during
stateful execution. Read moreSource§fn is_causal(&self) -> bool
fn is_causal(&self) -> bool
Get whether evaluator needs future data for its result (if so returns
false) or notSource§fn evaluate_all(
&mut self,
values: &[Arc<dyn Array>],
num_rows: usize,
) -> Result<Arc<dyn Array>, DataFusionError>
fn evaluate_all( &mut self, values: &[Arc<dyn Array>], num_rows: usize, ) -> Result<Arc<dyn Array>, DataFusionError>
Evaluate a window function on an entire input partition. Read more
Source§fn evaluate_all_with_rank(
&self,
_num_rows: usize,
_ranks_in_partition: &[Range<usize>],
) -> Result<Arc<dyn Array>, DataFusionError>
fn evaluate_all_with_rank( &self, _num_rows: usize, _ranks_in_partition: &[Range<usize>], ) -> Result<Arc<dyn Array>, DataFusionError>
PartitionEvaluator::evaluate_all_with_rank is called for window
functions that only need the rank of a row within its window
frame. Read moreSource§fn include_rank(&self) -> bool
fn include_rank(&self) -> bool
Can this function be evaluated with (only) rank Read more
Auto Trait Implementations§
impl Freeze for NthValueEvaluator
impl !RefUnwindSafe for NthValueEvaluator
impl Send for NthValueEvaluator
impl Sync for NthValueEvaluator
impl Unpin for NthValueEvaluator
impl !UnwindSafe for NthValueEvaluator
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more