pub enum QueryNode {
Scan {
predicate: String,
estimated_rows: u64,
},
Filter {
child: Box<QueryNode>,
condition: String,
},
Join {
left: Box<QueryNode>,
right: Box<QueryNode>,
join_key: String,
},
Project {
child: Box<QueryNode>,
fields: Vec<String>,
},
Limit {
child: Box<QueryNode>,
max_rows: u64,
},
}Expand description
A node in a logical query plan.
Variants§
Scan
Leaf table scan with an optional predicate string and cost hint.
Filter
Apply a boolean condition on top of a child plan.
Join
Hash / nested-loop join on a single key.
Project
Column projection (field list).
Limit
Row-count cap.
Trait Implementations§
impl StructuralPartialEq for QueryNode
Auto Trait Implementations§
impl Freeze for QueryNode
impl RefUnwindSafe for QueryNode
impl Send for QueryNode
impl Sync for QueryNode
impl Unpin for QueryNode
impl UnsafeUnpin for QueryNode
impl UnwindSafe for QueryNode
Blanket Implementations§
impl<T> Allocation for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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 more