pub struct PlanNode {
pub operation: String,
pub object: Option<String>,
pub details: Vec<String>,
pub estimated_rows: Option<f64>,
pub children: Vec<PlanNode>,
pub scan_type: Option<ScanType>,
pub index_name: Option<String>,
pub index_predicates: Vec<IndexPredicate>,
pub needs_temp_btree_for_order_by: bool,
pub set_operation_type: Option<String>,
pub is_compound_query: bool,
}Expand description
Represents a single node in the query execution plan
Fields§
§operation: StringType of operation (e.g., “Seq Scan”, “Index Scan”, “Hash Join”)
object: Option<String>Target object (e.g., table name, index name)
details: Vec<String>Additional details about this operation
estimated_rows: Option<f64>Estimated rows (if statistics available)
children: Vec<PlanNode>Child nodes in the plan tree
scan_type: Option<ScanType>SQLite-style scan type (for EQP output)
index_name: Option<String>Index name used (for SEARCH operations)
index_predicates: Vec<IndexPredicate>Index predicates for SQLite EQP format (e.g., “w=?”, “x>? AND x<?”)
needs_temp_btree_for_order_by: boolWhether this query requires a temp B-tree for ORDER BY
set_operation_type: Option<String>Set operation type for compound queries (UNION, INTERSECT, EXCEPT)
is_compound_query: boolWhether this is a compound query root
Trait Implementations§
Auto Trait Implementations§
impl Freeze for PlanNode
impl RefUnwindSafe for PlanNode
impl Send for PlanNode
impl Sync for PlanNode
impl Unpin for PlanNode
impl UnwindSafe for PlanNode
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,
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