#[non_exhaustive]pub struct AggregateStrategyExecutionOptions { /* private fields */ }Expand description
Runtime threshold policy for grouped aggregate strategy selection.
These thresholds choose between the default libcudf groupby path, encoded key partial aggregation, prepared sort-backed groupby, and exact cardinality probes. This is an expert Rust surface only; keep it out of server/session/user-facing configuration until the tuning model has a reviewed production contract.
Thresholds suffixed _ppm are ratios of distinct groups to input rows in
parts per million; _rows, _bytes, _row_groups, _fan_in and
_key_columns are absolute bounds. Zero disables the branch a threshold
guards, which is why Self::validate accepts it.
Implementations§
Source§impl AggregateStrategyExecutionOptions
impl AggregateStrategyExecutionOptions
Sourcepub const DEFAULT_SOURCE_ADJACENT_PREPARED_SORT_GROUPBY_MAX_ROW_GROUPS: u64 = 64
pub const DEFAULT_SOURCE_ADJACENT_PREPARED_SORT_GROUPBY_MAX_ROW_GROUPS: u64 = 64
Default maximum selected row groups for source-adjacent prepared sort grouping.
Sourcepub const DEFAULT_SOURCE_ADJACENT_PREPARED_SORT_GROUPBY_MAX_SOURCE_READ_BYTES: u64
pub const DEFAULT_SOURCE_ADJACENT_PREPARED_SORT_GROUPBY_MAX_SOURCE_READ_BYTES: u64
Default maximum source-read bytes for source-adjacent prepared sort grouping.
Sourcepub const DEFAULT_SOURCE_ADJACENT_PREPARED_SORT_GROUPBY_MAX_FAN_IN: u64 = 64
pub const DEFAULT_SOURCE_ADJACENT_PREPARED_SORT_GROUPBY_MAX_FAN_IN: u64 = 64
Default maximum chunk fan-in for source-adjacent prepared sort grouping.
Sourcepub fn encoded_key_partial_low_cardinality_threshold_ppm(&self) -> u64
pub fn encoded_key_partial_low_cardinality_threshold_ppm(&self) -> u64
Maximum distinct-group/input-row ratio, in parts per million, for the encoded-key partial aggregation strategy.
Sourcepub fn encoded_key_partial_min_input_rows(&self) -> u64
pub fn encoded_key_partial_min_input_rows(&self) -> u64
Minimum input row count for considering encoded-key partial aggregation.
Sourcepub fn exact_grouped_key_cardinality_probe_max_key_columns(&self) -> usize
pub fn exact_grouped_key_cardinality_probe_max_key_columns(&self) -> usize
Maximum number of grouping columns admitted to the exact cardinality probe.
Sourcepub fn exact_single_string_avg_cardinality_probe_min_input_rows(&self) -> u64
pub fn exact_single_string_avg_cardinality_probe_min_input_rows(&self) -> u64
Minimum input row count for probing a single string key with AVG state.
Sourcepub fn exact_single_key_cardinality_probe_min_input_rows(&self) -> u64
pub fn exact_single_key_cardinality_probe_min_input_rows(&self) -> u64
Minimum input row count for the general single-key cardinality probe.
Sourcepub fn exact_grouped_key_cardinality_probe_min_input_rows(&self) -> u64
pub fn exact_grouped_key_cardinality_probe_min_input_rows(&self) -> u64
Minimum input row count for the multi-column grouping cardinality probe.
Sourcepub fn exact_single_string_key_prepared_max_groups(&self) -> u64
pub fn exact_single_string_key_prepared_max_groups(&self) -> u64
Maximum distinct string-key groups admitted to the prepared strategy.
Sourcepub fn exact_three_key_cardinality_probe_max_input_rows(&self) -> u64
pub fn exact_three_key_cardinality_probe_max_input_rows(&self) -> u64
Maximum input row count for an exact three-column grouping probe.
Sourcepub fn exact_five_key_cardinality_probe_max_input_rows(&self) -> u64
pub fn exact_five_key_cardinality_probe_max_input_rows(&self) -> u64
Maximum input row count for an exact five-column grouping probe.
Sourcepub fn prepared_sort_groupby_low_cardinality_threshold_ppm(&self) -> u64
pub fn prepared_sort_groupby_low_cardinality_threshold_ppm(&self) -> u64
Maximum distinct-group/input-row ratio, in parts per million, for prepared sort grouping.
Sourcepub fn source_adjacent_prepared_sort_groupby_max_row_groups(&self) -> u64
pub fn source_adjacent_prepared_sort_groupby_max_row_groups(&self) -> u64
Maximum selected row groups for source-adjacent prepared sort grouping.
Sourcepub fn source_adjacent_prepared_sort_groupby_max_source_read_bytes(&self) -> u64
pub fn source_adjacent_prepared_sort_groupby_max_source_read_bytes(&self) -> u64
Maximum source-read bytes for source-adjacent prepared sort grouping.
Sourcepub fn source_adjacent_prepared_sort_groupby_max_fan_in(&self) -> u64
pub fn source_adjacent_prepared_sort_groupby_max_fan_in(&self) -> u64
Maximum chunk fan-in for source-adjacent prepared sort grouping.
Sourcepub fn validate(&self) -> Result<(), QueryError>
pub fn validate(&self) -> Result<(), QueryError>
Validates aggregate strategy policy values.
Zero-valued thresholds remain accepted because this is an expert Rust surface and callers may use zero to disable narrow strategy branches. The checks here reject ratios above one hundred percent and contradictory nonzero probe bounds so strategy facts remain interpretable.
Sourcepub fn with_encoded_key_partial_low_cardinality_threshold_ppm(
self,
threshold_ppm: u64,
) -> AggregateStrategyExecutionOptions
pub fn with_encoded_key_partial_low_cardinality_threshold_ppm( self, threshold_ppm: u64, ) -> AggregateStrategyExecutionOptions
Sets the distinct-group/input-row ratio limit in parts per million.
Self::validate rejects values above 1,000,000.
Sourcepub fn with_encoded_key_partial_min_input_rows(
self,
rows: u64,
) -> AggregateStrategyExecutionOptions
pub fn with_encoded_key_partial_min_input_rows( self, rows: u64, ) -> AggregateStrategyExecutionOptions
Sets the minimum input rows for encoded-key partial aggregation. This setter retains the supplied threshold without validation.
Sourcepub fn with_prepared_sort_groupby_low_cardinality_threshold_ppm(
self,
threshold_ppm: u64,
) -> AggregateStrategyExecutionOptions
pub fn with_prepared_sort_groupby_low_cardinality_threshold_ppm( self, threshold_ppm: u64, ) -> AggregateStrategyExecutionOptions
Sets the distinct-group/input-row ratio limit for prepared sort grouping
in parts per million. Self::validate rejects values above 1,000,000.
Sourcepub fn with_source_adjacent_prepared_sort_groupby_max_row_groups(
self,
row_groups: u64,
) -> AggregateStrategyExecutionOptions
pub fn with_source_adjacent_prepared_sort_groupby_max_row_groups( self, row_groups: u64, ) -> AggregateStrategyExecutionOptions
Sets the selected-row-group bound for source-adjacent prepared sort grouping. Zero disables that strategy branch.
Trait Implementations§
Source§impl Clone for AggregateStrategyExecutionOptions
impl Clone for AggregateStrategyExecutionOptions
Source§fn clone(&self) -> AggregateStrategyExecutionOptions
fn clone(&self) -> AggregateStrategyExecutionOptions
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for AggregateStrategyExecutionOptions
Source§impl Default for AggregateStrategyExecutionOptions
impl Default for AggregateStrategyExecutionOptions
Source§fn default() -> AggregateStrategyExecutionOptions
fn default() -> AggregateStrategyExecutionOptions
impl Eq for AggregateStrategyExecutionOptions
impl StructuralPartialEq for AggregateStrategyExecutionOptions
Auto Trait Implementations§
impl Freeze for AggregateStrategyExecutionOptions
impl RefUnwindSafe for AggregateStrategyExecutionOptions
impl Send for AggregateStrategyExecutionOptions
impl Sync for AggregateStrategyExecutionOptions
impl Unpin for AggregateStrategyExecutionOptions
impl UnsafeUnpin for AggregateStrategyExecutionOptions
impl UnwindSafe for AggregateStrategyExecutionOptions
Blanket Implementations§
impl<T> Allocation for T
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
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
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> ⓘ
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> ⓘ
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request