Skip to main content

analyze_typed

Function analyze_typed 

Source
pub fn analyze_typed(
    hg: &HypergraphRule,
    vertex_types: &BTreeMap<String, ScalarType>,
    context: ExecutorContext,
) -> Eligibility
Expand description

Typed eligibility analysis.

Same as analyze, but additionally consults vertex_types — a map from variable name to inferred [ScalarType] — to emit Boundary::UnsupportedKeyType for join-key vertices whose type is outside WCOJ_SUPPORTED_KEY_TYPES.

“Join-key vertex” matches the same definition used by analyze: a vertex that appears in two or more hyperedges. Projection-only vertices (those appearing in exactly one hyperedge) are NOT checked — their types do not affect WCOJ planning.

Locked policy (PR 5): unknown ≠ unsupported. Vertices missing from vertex_types are NOT flagged. The crate::hypergraph::typed gate populates this map via schema-driven derivation from a crate::hypergraph::RefRelationStore; vertices anchored only through predicates absent from that store (e.g. an SCC predicate referenced recursively before its first iteration) stay absent and pass through. Transitive type propagation across recursive predicates is a follow-up slice.