#[non_exhaustive]pub struct DynamicFilterExecutionOptions { /* private fields */ }Expand description
Runtime and route-discovery thresholds for native dynamic filters.
These values are shared by the optimizer and compiled execution so a route
admitted during planning is evaluated against the same skip and payload
thresholds at runtime. Keep this as one policy object before exposing any
subset through user-facing configuration. Fields are public and
#[doc(hidden)], except max_range_reader_predicate_selectivity_ppm,
which is crate-visible. Embedders should use the read-only accessors and
with_* methods.
Implementations§
Source§impl DynamicFilterExecutionOptions
impl DynamicFilterExecutionOptions
Sourcepub fn small_in_list_limit(&self) -> usize
pub fn small_in_list_limit(&self) -> usize
Maximum exact keyset cardinality lowered into a reader IN (...) predicate.
Sourcepub fn max_build_rows(&self) -> usize
pub fn max_build_rows(&self) -> usize
Runtime cap for producer rows when an exact host keyset would be materialized.
Sourcepub fn large_local_parquet_range_producer_rows(&self) -> usize
pub fn large_local_parquet_range_producer_rows(&self) -> usize
Producer row threshold where local-Parquet consumers switch from exact host keysets to range-only payloads.
Sourcepub fn dimension_sized_consumer_bytes(&self) -> u64
pub fn dimension_sized_consumer_bytes(&self) -> u64
Local-Parquet consumer byte threshold below which large producer keysets are treated as unlikely to pay for themselves.
Sourcepub fn tiny_local_parquet_consumer_row_groups(&self) -> usize
pub fn tiny_local_parquet_consumer_row_groups(&self) -> usize
Selected row-group count below which a dimension-sized local-Parquet consumer has too little independent source work to justify a large keyset.
Sourcepub fn max_range_reader_predicate_selectivity_ppm(&self) -> u64
pub fn max_range_reader_predicate_selectivity_ppm(&self) -> u64
Maximum range overlap ratio, in parts per million, for merging a runtime range payload into a reader predicate.
Sourcepub fn max_deferred_small_in_list_reader_values(&self) -> usize
pub fn max_deferred_small_in_list_reader_values(&self) -> usize
Maximum small-IN-list cardinality that may be deferred from reader predicate application into a post-decode filter when another predicate remains.
Sourcepub fn max_unpruned_hash_set_post_decode_values(&self) -> usize
pub fn max_unpruned_hash_set_post_decode_values(&self) -> usize
Maximum unpruned hash-set payload cardinality accepted for source post-decode filtering.
Sourcepub fn min_unpruned_hash_set_post_decode_source_rows(&self) -> u64
pub fn min_unpruned_hash_set_post_decode_source_rows(&self) -> u64
Minimum known source rows required before an unpruned hash-set payload is worth applying as a source post-decode filter.
Sourcepub fn validate(&self) -> Result<(), QueryError>
pub fn validate(&self) -> Result<(), QueryError>
Validates internal consistency for this dynamic-filter policy.
Zero-valued thresholds remain accepted because this is still an expert Rust surface and callers may use zero to disable narrow sub-behaviors. The checks here reject values outside their bounds and combinations that make planner and runtime contracts contradictory.
Sourcepub fn with_max_build_rows(self, rows: usize) -> DynamicFilterExecutionOptions
pub fn with_max_build_rows(self, rows: usize) -> DynamicFilterExecutionOptions
Sets the producer row cap for materializing an exact host keyset.
Sourcepub fn with_large_local_parquet_range_producer_rows(
self,
rows: usize,
) -> DynamicFilterExecutionOptions
pub fn with_large_local_parquet_range_producer_rows( self, rows: usize, ) -> DynamicFilterExecutionOptions
Sets the producer row threshold for using range-only payloads with local Parquet consumers.
Trait Implementations§
Source§impl Clone for DynamicFilterExecutionOptions
impl Clone for DynamicFilterExecutionOptions
Source§fn clone(&self) -> DynamicFilterExecutionOptions
fn clone(&self) -> DynamicFilterExecutionOptions
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 DynamicFilterExecutionOptions
Source§impl Default for DynamicFilterExecutionOptions
impl Default for DynamicFilterExecutionOptions
Source§fn default() -> DynamicFilterExecutionOptions
fn default() -> DynamicFilterExecutionOptions
impl Eq for DynamicFilterExecutionOptions
impl StructuralPartialEq for DynamicFilterExecutionOptions
Auto Trait Implementations§
impl Freeze for DynamicFilterExecutionOptions
impl RefUnwindSafe for DynamicFilterExecutionOptions
impl Send for DynamicFilterExecutionOptions
impl Sync for DynamicFilterExecutionOptions
impl Unpin for DynamicFilterExecutionOptions
impl UnsafeUnpin for DynamicFilterExecutionOptions
impl UnwindSafe for DynamicFilterExecutionOptions
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