pub struct ExecutionPlan {
pub sccs: Vec<Scc>,
pub strata: Vec<Stratum>,
pub rules_by_scc: Vec<Vec<CompiledRule>>,
pub est_memory_peak: u64,
pub rel_arities: HashMap<RelId, usize>,
}Expand description
Complete execution plan for a program
Fields§
§sccs: Vec<Scc>SCCs in dependency order
strata: Vec<Stratum>Strata for negation ordering
rules_by_scc: Vec<Vec<CompiledRule>>Compiled rules grouped by SCC
est_memory_peak: u64Total estimated memory peak (bytes)
rel_arities: HashMap<RelId, usize>Relation arities known at lowering time (every predicate the lowerer assigned a RelId). Consumed by shape promoters that must size Scan leaves without schema access (general Free Join multiway promotion).
Implementations§
Source§impl ExecutionPlan
impl ExecutionPlan
Sourcepub fn with_strata(self, strata: Vec<Stratum>) -> Self
pub fn with_strata(self, strata: Vec<Stratum>) -> Self
Add strata to the plan
Sourcepub fn recursive_scc_count(&self) -> usize
pub fn recursive_scc_count(&self) -> usize
Get the number of recursive SCCs
Sourcepub fn has_recursion(&self) -> bool
pub fn has_recursion(&self) -> bool
Check if this plan has any recursion
Trait Implementations§
Source§impl Clone for ExecutionPlan
impl Clone for ExecutionPlan
Source§fn clone(&self) -> ExecutionPlan
fn clone(&self) -> ExecutionPlan
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 moreAuto Trait Implementations§
impl Freeze for ExecutionPlan
impl RefUnwindSafe for ExecutionPlan
impl Send for ExecutionPlan
impl Sync for ExecutionPlan
impl Unpin for ExecutionPlan
impl UnsafeUnpin for ExecutionPlan
impl UnwindSafe for ExecutionPlan
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