pub struct QueryPlanner { /* private fields */ }Expand description
Query planner - selects optimal execution strategy.
Implementations§
Source§impl QueryPlanner
impl QueryPlanner
Sourcepub fn new(cache_enabled: bool) -> Self
pub fn new(cache_enabled: bool) -> Self
Create new query planner with default JSONB optimization options.
Sourcepub const fn with_jsonb_options(
cache_enabled: bool,
jsonb_options: JsonbOptimizationOptions,
) -> Self
pub const fn with_jsonb_options( cache_enabled: bool, jsonb_options: JsonbOptimizationOptions, ) -> Self
Create query planner with custom JSONB optimization options.
Sourcepub fn plan(&self, query_match: &QueryMatch) -> Result<ExecutionPlan>
pub fn plan(&self, query_match: &QueryMatch) -> Result<ExecutionPlan>
Create an execution plan for a matched query.
§Arguments
query_match- Matched query with extracted information
§Returns
Execution plan with SQL, parameters, and optimization hints
§Errors
Returns error if plan generation fails.
§Example
// Requires: a QueryMatch from compiled schema matching.
let planner = QueryPlanner::new(true);
let plan = planner.plan(&query_match)?;
assert!(!plan.sql.is_empty());Sourcepub const fn cache_enabled(&self) -> bool
pub const fn cache_enabled(&self) -> bool
Check if caching is enabled.
Auto Trait Implementations§
impl Freeze for QueryPlanner
impl RefUnwindSafe for QueryPlanner
impl Send for QueryPlanner
impl Sync for QueryPlanner
impl Unpin for QueryPlanner
impl UnsafeUnpin for QueryPlanner
impl UnwindSafe for QueryPlanner
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