pub enum SccFixpointError {
RuleHeadPredicateMismatch {
group_key: String,
rule_index: usize,
observed: String,
},
HeadArityMismatch {
predicate: String,
rule_index: usize,
observed_arity: usize,
expected_arity: usize,
},
InconsistentHeadValueTypes {
predicate: String,
column: usize,
expected: ScalarType,
got: String,
},
PredicateInBaseRelations {
name: String,
},
RuleEval {
predicate: String,
rule_index: usize,
source: RefEvalError,
},
MaxIterationsExceeded {
limit: usize,
predicate_count: usize,
total_observed_rows: usize,
},
SchemaIndeterminable {
predicate: String,
},
InvalidMaxIterations,
}Expand description
Errors surfaced by evaluate_scc_fixpoint.
Variants§
RuleHeadPredicateMismatch
A rule grouped under predicate key heads a different
predicate. The grouping invariant — every rule’s head
predicate equals its BTreeMap key — is checked at
function entry.
Fields
HeadArityMismatch
Two rules grouped under the same predicate disagree on head arity.
Fields
InconsistentHeadValueTypes
A predicate’s rules produced rows whose RefValue
variants disagree across iterations or across rules
within an iteration. Detected by validating each newly
produced row’s variant tuple against the predicate’s
frozen schema before unioning.
Fields
expected: ScalarTypeSchema-frozen scalar type at that column.
PredicateInBaseRelations
target_predicate was already present in base_relations.
SCC predicates are constructed by the fixpoint; allowing
base_relations to seed any of them would silently shadow
the caller’s seed.
RuleEval
A rule failed evaluation. Wraps the per-rule error with (predicate, rule_index) so the caller can pinpoint which rule of which group failed.
Fields
source: RefEvalErrorThe wrapped per-rule error.
MaxIterationsExceeded
The SCC fixpoint did not converge within
FixpointConfig::max_iterations.
Fields
SchemaIndeterminable
At least one predicate had no rules with a non-empty head, so its arity could not be inferred.
InvalidMaxIterations
max_iterations was zero. Must be ≥ 1.
Trait Implementations§
Source§impl Clone for SccFixpointError
impl Clone for SccFixpointError
Source§fn clone(&self) -> SccFixpointError
fn clone(&self) -> SccFixpointError
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more