pub enum GroupOrdering {
None,
Partial(GroupOrderingPartial),
Full(GroupOrderingFull),
}
Expand description
Ordering information for each group in the hash table
Variants§
None
Groups are not ordered
Partial(GroupOrderingPartial)
Groups are ordered by some pre-set of the group keys
Full(GroupOrderingFull)
Groups are entirely contiguous,
Implementations§
Source§impl GroupOrdering
impl GroupOrdering
Sourcepub fn try_new(
input_schema: &Schema,
mode: &InputOrderMode,
ordering: LexOrderingRef<'_>,
) -> Result<Self>
pub fn try_new( input_schema: &Schema, mode: &InputOrderMode, ordering: LexOrderingRef<'_>, ) -> Result<Self>
Create a GroupOrdering
for the specified ordering
pub fn emit_to(&self) -> Option<EmitTo>
Sourcepub fn input_done(&mut self)
pub fn input_done(&mut self)
Updates the state the input is done
Sourcepub fn remove_groups(&mut self, n: usize)
pub fn remove_groups(&mut self, n: usize)
remove the first n groups from the internal state, shifting
all existing indexes down by n
Sourcepub fn new_groups(
&mut self,
batch_group_values: &[ArrayRef],
group_indices: &[usize],
total_num_groups: usize,
) -> Result<()>
pub fn new_groups( &mut self, batch_group_values: &[ArrayRef], group_indices: &[usize], total_num_groups: usize, ) -> Result<()>
Called when new groups are added in a batch
-
total_num_groups
: total number of groups (so max group_index is total_num_groups - 1). -
group_values
: group key values for each row in the batch -
group_indices
: indices for each row in the batch -
hashes
: hash values for each row in the batch
Trait Implementations§
Auto Trait Implementations§
impl Freeze for GroupOrdering
impl RefUnwindSafe for GroupOrdering
impl Send for GroupOrdering
impl Sync for GroupOrdering
impl Unpin for GroupOrdering
impl UnwindSafe for GroupOrdering
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
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