pub enum GpuGroupByStrategy {
Hash(GpuHashStrategy),
RadixSort,
}Expand description
Adaptive algorithm selection strategy
Variants§
Hash(GpuHashStrategy)
Use hash-based GROUP BY (good for low-medium cardinality)
RadixSort
Use radix sort-based GROUP BY (good for high cardinality)
Implementations§
Source§impl GpuGroupByStrategy
impl GpuGroupByStrategy
Sourcepub fn choose_for_cardinality(estimated_groups: usize) -> Self
pub fn choose_for_cardinality(estimated_groups: usize) -> Self
Choose optimal GROUP BY strategy based on estimated cardinality
Heuristics:
- < 100K groups: Use hash-based (Linear/Cuckoo/RobinHood)
-
= 100K groups: Use radix sort
Sourcepub fn choose_with_override(estimated_groups: usize, force_radix: bool) -> Self
pub fn choose_with_override(estimated_groups: usize, force_radix: bool) -> Self
Choose optimal strategy with manual override
Trait Implementations§
Source§impl Clone for GpuGroupByStrategy
impl Clone for GpuGroupByStrategy
Source§fn clone(&self) -> GpuGroupByStrategy
fn clone(&self) -> GpuGroupByStrategy
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for GpuGroupByStrategy
impl Debug for GpuGroupByStrategy
Source§impl PartialEq for GpuGroupByStrategy
impl PartialEq for GpuGroupByStrategy
impl Copy for GpuGroupByStrategy
impl Eq for GpuGroupByStrategy
impl StructuralPartialEq for GpuGroupByStrategy
Auto Trait Implementations§
impl Freeze for GpuGroupByStrategy
impl RefUnwindSafe for GpuGroupByStrategy
impl Send for GpuGroupByStrategy
impl Sync for GpuGroupByStrategy
impl Unpin for GpuGroupByStrategy
impl UnsafeUnpin for GpuGroupByStrategy
impl UnwindSafe for GpuGroupByStrategy
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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