pub struct NullProvider;Expand description
Provider that returns None for everything. Planner uses its built-in
heuristic constants.
Trait Implementations§
Source§impl Clone for NullProvider
impl Clone for NullProvider
Source§fn clone(&self) -> NullProvider
fn clone(&self) -> NullProvider
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · 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 NullProvider
impl Debug for NullProvider
Source§impl Default for NullProvider
impl Default for NullProvider
Source§fn default() -> NullProvider
fn default() -> NullProvider
Returns the “default value” for a type. Read more
Source§impl StatsProvider for NullProvider
impl StatsProvider for NullProvider
Source§fn table_stats(&self, _table: &str) -> Option<TableStats>
fn table_stats(&self, _table: &str) -> Option<TableStats>
Return row-count / page-count / column metadata for
table, or
None when stats are not available.Source§fn index_stats(&self, _table: &str, _column: &str) -> Option<IndexStats>
fn index_stats(&self, _table: &str, _column: &str) -> Option<IndexStats>
Return the
IndexStats backing a secondary index on
(table, column), if one exists. The planner uses
IndexStats::point_selectivity to derive equality selectivity
instead of the 0.01 constant.Source§fn column_stats(&self, table: &str, column: &str) -> Option<ColumnStats>
fn column_stats(&self, table: &str, column: &str) -> Option<ColumnStats>
Return per-column statistics (distinct count, null count, min/max)
when available. Default implementation derives from
StatsProvider::table_stats when present.Source§fn has_index(&self, table: &str, column: &str) -> bool
fn has_index(&self, table: &str, column: &str) -> bool
Convenience: does a usable index exist on
(table, column)?Source§fn distinct_values(&self, table: &str, column: &str) -> Option<u64>
fn distinct_values(&self, table: &str, column: &str) -> Option<u64>
Convenience: distinct-value count for a column, via column stats or
an index on that column, whichever is available.
Source§fn column_histogram(&self, _table: &str, _column: &str) -> Option<Histogram>
fn column_histogram(&self, _table: &str, _column: &str) -> Option<Histogram>
Optional equi-depth histogram for the column. Defaults to
None, in which case the planner falls back to its uniform
0.3 range heuristic. Read moreSource§fn column_mcv(&self, _table: &str, _column: &str) -> Option<MostCommonValues>
fn column_mcv(&self, _table: &str, _column: &str) -> Option<MostCommonValues>
Optional most-common-values list for the column. Defaults to
None, in which case the planner falls back to its uniform
0.01 equality heuristic. Use for skewed columns where one or
two values dominate the table.Auto Trait Implementations§
impl Freeze for NullProvider
impl RefUnwindSafe for NullProvider
impl Send for NullProvider
impl Sync for NullProvider
impl Unpin for NullProvider
impl UnsafeUnpin for NullProvider
impl UnwindSafe for NullProvider
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<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 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>
Wrap the input message
T in a tonic::Request