pub struct ExecutionPlan {
pub sccs: Vec<Scc>,
pub strata: Vec<Stratum>,
pub rules_by_scc: Vec<Vec<CompiledRule>>,
pub generated_query_rules: Vec<GeneratedQueryRuleProvenance>,
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
generated_query_rules: Vec<GeneratedQueryRuleProvenance>Exact compiled rule positions originating from authored program queries. Manually assembled plans leave this empty unless they explicitly model generated-query semantics.
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 dependency_closed_subplan(
&self,
root_sccs: &[usize],
defining_sccs: &HashMap<RelId, usize>,
) -> Option<Self>
pub fn dependency_closed_subplan( &self, root_sccs: &[usize], defining_sccs: &HashMap<RelId, usize>, ) -> Option<Self>
Return the dependency-closed subplan for a set of root SCC positions.
defining_sccs maps derived relation IDs to the SCC that defines them.
Relations absent from that map are treated as extensional inputs. The
projection preserves source order, retains complete SCCs, and rewrites
every positional index in the plan. None means the supplied plan or
dependency proof is inconsistent, so callers must keep the original plan.
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
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more