pub struct QueryPlan {
pub relations_bound: bool,
pub ctes: Vec<CtePlan>,
pub root: RelationalPlan,
}Expand description
A relational query with its CTE scope and one relational root.
Fields§
§relations_bound: boolWhether relation references in this tree are stored catalog identities rather than names that must be resolved in the executing session.
ctes: Vec<CtePlan>§root: RelationalPlanImplementations§
Source§impl QueryPlan
impl QueryPlan
Sourcepub fn rewrite_scalar_expressions(
&mut self,
rewrite: &mut dyn FnMut(&mut ScalarExpr),
)
pub fn rewrite_scalar_expressions( &mut self, rewrite: &mut dyn FnMut(&mut ScalarExpr), )
Rewrite every physical scalar node owned by this query exactly once, including CTEs, relational sources, and scalar-subquery plans.
pub fn lower(statement: SelectStmt) -> Self
pub fn lower_with( statement: SelectStmt, aggregates: &dyn AggregateClassifier, ) -> Self
Trait Implementations§
Source§impl<'de> Deserialize<'de> for QueryPlan
impl<'de> Deserialize<'de> for QueryPlan
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for QueryPlan
impl RefUnwindSafe for QueryPlan
impl Send for QueryPlan
impl Sync for QueryPlan
impl Unpin for QueryPlan
impl UnsafeUnpin for QueryPlan
impl UnwindSafe for QueryPlan
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<T> ErasedDestructor for Twhere
T: 'static,
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