Skip to main content

AggregateStrategyExecutionOptions

Struct AggregateStrategyExecutionOptions 

Source
#[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

Source

pub const DEFAULT_SOURCE_ADJACENT_PREPARED_SORT_GROUPBY_MAX_ROW_GROUPS: u64 = 64

Default maximum selected row groups for source-adjacent prepared sort grouping.

Source

pub const DEFAULT_SOURCE_ADJACENT_PREPARED_SORT_GROUPBY_MAX_SOURCE_READ_BYTES: u64

Default maximum source-read bytes for source-adjacent prepared sort grouping.

Source

pub const DEFAULT_SOURCE_ADJACENT_PREPARED_SORT_GROUPBY_MAX_FAN_IN: u64 = 64

Default maximum chunk fan-in for source-adjacent prepared sort grouping.

Source

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.

Source

pub fn encoded_key_partial_min_input_rows(&self) -> u64

Minimum input row count for considering encoded-key partial aggregation.

Source

pub fn exact_grouped_key_cardinality_probe_max_key_columns(&self) -> usize

Maximum number of grouping columns admitted to the exact cardinality probe.

Source

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.

Source

pub fn exact_single_key_cardinality_probe_min_input_rows(&self) -> u64

Minimum input row count for the general single-key cardinality probe.

Source

pub fn exact_grouped_key_cardinality_probe_min_input_rows(&self) -> u64

Minimum input row count for the multi-column grouping cardinality probe.

Source

pub fn exact_single_string_key_prepared_max_groups(&self) -> u64

Maximum distinct string-key groups admitted to the prepared strategy.

Source

pub fn exact_three_key_cardinality_probe_max_input_rows(&self) -> u64

Maximum input row count for an exact three-column grouping probe.

Source

pub fn exact_five_key_cardinality_probe_max_input_rows(&self) -> u64

Maximum input row count for an exact five-column grouping probe.

Source

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.

Source

pub fn source_adjacent_prepared_sort_groupby_max_row_groups(&self) -> u64

Maximum selected row groups for source-adjacent prepared sort grouping.

Source

pub fn source_adjacent_prepared_sort_groupby_max_source_read_bytes(&self) -> u64

Maximum source-read bytes for source-adjacent prepared sort grouping.

Source

pub fn source_adjacent_prepared_sort_groupby_max_fan_in(&self) -> u64

Maximum chunk fan-in for source-adjacent prepared sort grouping.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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

Source§

fn clone(&self) -> AggregateStrategyExecutionOptions

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for AggregateStrategyExecutionOptions

Source§

impl Debug for AggregateStrategyExecutionOptions

Source§

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

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

impl Default for AggregateStrategyExecutionOptions

Source§

fn default() -> AggregateStrategyExecutionOptions

Returns the “default value” for a type. Read more
Source§

impl Eq for AggregateStrategyExecutionOptions

Source§

impl PartialEq for AggregateStrategyExecutionOptions

Source§

fn eq(&self, other: &AggregateStrategyExecutionOptions) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for AggregateStrategyExecutionOptions

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynEq for T
where T: Eq + Any,

Source§

fn dyn_eq(&self, other: &(dyn Any + 'static)) -> bool

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

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
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromRef<T> for T
where T: Clone,

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
Source§

impl<T> Instrument for T

Source§

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

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

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

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

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

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + 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
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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

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

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

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

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

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