pub struct CostEstimator { /* private fields */ }Expand description
Cost estimator for query plans
Implementations§
Source§impl CostEstimator
impl CostEstimator
Sourcepub fn new() -> CostEstimator
pub fn new() -> CostEstimator
Create a new cost estimator with default parameters and a
NullProvider — no real stats, pure heuristic mode.
Sourcepub fn with_stats(provider: Arc<dyn StatsProvider>) -> CostEstimator
pub fn with_stats(provider: Arc<dyn StatsProvider>) -> CostEstimator
Create a cost estimator that consults provider for real table /
column / index statistics. Any lookups the provider cannot satisfy
fall back to the heuristic path automatically.
Sourcepub fn set_stats(&mut self, provider: Arc<dyn StatsProvider>)
pub fn set_stats(&mut self, provider: Arc<dyn StatsProvider>)
Swap the stats provider on an existing estimator. Useful for tests
and for planners that build one CostEstimator and repoint it at
per-query snapshots.
Sourcepub fn estimate_cardinality(&self, query: &QueryExpr) -> CardinalityEstimate
pub fn estimate_cardinality(&self, query: &QueryExpr) -> CardinalityEstimate
Estimate cardinality of a query result
Trait Implementations§
Source§impl Default for CostEstimator
impl Default for CostEstimator
Source§fn default() -> CostEstimator
fn default() -> CostEstimator
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for CostEstimator
impl !RefUnwindSafe for CostEstimator
impl Send for CostEstimator
impl Sync for CostEstimator
impl Unpin for CostEstimator
impl UnsafeUnpin for CostEstimator
impl !UnwindSafe for CostEstimator
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> 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