pub struct QueryOptimizer { /* private fields */ }Expand description
Query optimizer for validation constraints.
Implementations§
Source§impl QueryOptimizer
impl QueryOptimizer
Sourcepub async fn optimize_and_execute(
&mut self,
checks: &[Check],
ctx: &TermContext,
) -> Result<HashMap<String, Vec<ConstraintResult>>, TermError>
pub async fn optimize_and_execute( &mut self, checks: &[Check], ctx: &TermContext, ) -> Result<HashMap<String, Vec<ConstraintResult>>, TermError>
Optimizes and executes a set of checks.
This method:
- Analyzes all constraints to identify optimization opportunities
- Groups constraints by table and compatible operations
- Combines queries to minimize table scans
- Executes optimized queries and maps results back to constraints
§Arguments
checks- The validation checks to optimize and executectx- The Term context containing the DataFusion session
§Returns
A map of constraint names to their results.
Sourcepub async fn explain_plan(
&mut self,
checks: &[Check],
ctx: &TermContext,
) -> Result<String, TermError>
pub async fn explain_plan( &mut self, checks: &[Check], ctx: &TermContext, ) -> Result<String, TermError>
Explains the query optimization plan for debugging.
This provides detailed information about:
- Which constraints were grouped together
- What optimizations were applied
- The resulting query plans
Trait Implementations§
Source§impl Debug for QueryOptimizer
impl Debug for QueryOptimizer
Auto Trait Implementations§
impl Freeze for QueryOptimizer
impl !RefUnwindSafe for QueryOptimizer
impl Send for QueryOptimizer
impl Sync for QueryOptimizer
impl Unpin for QueryOptimizer
impl !UnwindSafe for QueryOptimizer
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 more