NthValueEvaluator

Struct NthValueEvaluator 

Source
pub(crate) struct NthValueEvaluator {
    state: NthValueState,
    ignore_nulls: bool,
    n: i64,
}

Fields§

§state: NthValueState§ignore_nulls: bool§n: i64

Trait Implementations§

Source§

impl Debug for NthValueEvaluator

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartitionEvaluator for NthValueEvaluator

Source§

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>

Evaluate window function on a range of rows in an input partition.x Read more
Source§

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

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>

If uses_window_frame flag is false. This method is used to calculate required range for the window function during stateful execution. Read more
Source§

fn is_causal(&self) -> bool

Get whether evaluator needs future data for its result (if so returns false) or not
Source§

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>

PartitionEvaluator::evaluate_all_with_rank is called for window functions that only need the rank of a row within its window frame. Read more
Source§

fn include_rank(&self) -> bool

Can this function be evaluated with (only) rank Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,