pub struct QueryPlanNode {
pub node_type: String,
pub description: String,
pub estimated_cardinality: Option<usize>,
pub actual_cardinality: Option<usize>,
pub estimated_cost: Option<f64>,
pub execution_time_us: Option<u64>,
pub index_used: Option<String>,
pub children: Vec<QueryPlanNode>,
pub metadata: HashMap<String, String>,
}Expand description
Query plan node representing a step in query execution
Fields§
§node_type: StringNode type (e.g., “TriplePattern”, “Join”, “Filter”)
description: StringDescription of the operation
estimated_cardinality: Option<usize>Estimated cardinality (number of results)
actual_cardinality: Option<usize>Actual cardinality (if executed)
estimated_cost: Option<f64>Estimated cost (arbitrary units)
execution_time_us: Option<u64>Actual execution time in microseconds
index_used: Option<String>Index used (if applicable)
children: Vec<QueryPlanNode>Child nodes
metadata: HashMap<String, String>Additional metadata
Implementations§
Source§impl QueryPlanNode
impl QueryPlanNode
Sourcepub fn new(node_type: impl Into<String>, description: impl Into<String>) -> Self
pub fn new(node_type: impl Into<String>, description: impl Into<String>) -> Self
Create a new query plan node
Sourcepub fn add_child(&mut self, child: QueryPlanNode)
pub fn add_child(&mut self, child: QueryPlanNode)
Add a child node
Sourcepub fn with_estimated_cardinality(self, cardinality: usize) -> Self
pub fn with_estimated_cardinality(self, cardinality: usize) -> Self
Set estimated cardinality
Sourcepub fn with_actual_cardinality(self, cardinality: usize) -> Self
pub fn with_actual_cardinality(self, cardinality: usize) -> Self
Set actual cardinality
Sourcepub fn with_estimated_cost(self, cost: f64) -> Self
pub fn with_estimated_cost(self, cost: f64) -> Self
Set estimated cost
Sourcepub fn with_execution_time(self, time_us: u64) -> Self
pub fn with_execution_time(self, time_us: u64) -> Self
Set execution time
Sourcepub fn with_index(self, index: impl Into<String>) -> Self
pub fn with_index(self, index: impl Into<String>) -> Self
Set index used
Trait Implementations§
Source§impl Clone for QueryPlanNode
impl Clone for QueryPlanNode
Source§fn clone(&self) -> QueryPlanNode
fn clone(&self) -> QueryPlanNode
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for QueryPlanNode
impl Debug for QueryPlanNode
Source§impl<'de> Deserialize<'de> for QueryPlanNode
impl<'de> Deserialize<'de> for QueryPlanNode
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 QueryPlanNode
impl RefUnwindSafe for QueryPlanNode
impl Send for QueryPlanNode
impl Sync for QueryPlanNode
impl Unpin for QueryPlanNode
impl UnsafeUnpin for QueryPlanNode
impl UnwindSafe for QueryPlanNode
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> 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