Skip to main content

Crate graphforge_plan

Crate graphforge_plan 

Source
Expand description

GraphForge DataFusion integration, optimizer rules, and custom plan nodes.

§Custom logical plan nodes (#577)

Six graph-native operators cannot be expressed in relational algebra. This module defines their logical plan stubs — enough for the lowering layer to produce a valid LogicalPlan that DataFusion accepts without panicking. Physical implementations come in milestone 13 (Execution Baseline).

NodeTriggered by
VarLenExpandNodeExpand with max_hops != Some(1)
OptionalMatchNodeOptional { child }
PathUniqueNodeExpand with path-uniqueness flag
OntologyInferNodeExpand on transitive/symmetric relation
GraphMergeNodeMerge { pattern }
UnwindNodeUnwind { list_expr, alias }

Structs§

DeleteTarget
One resolved DELETE target: a bound variable and whether it is an edge.
ExpandNode
Physical node for adjacency-backed single-hop expansion (#763).
GraphCreateNode
Logical node for CREATE: a write specification driven by an input plan.
GraphDeleteNode
Logical node for DELETE / DETACH DELETE (#740): a delete specification driven by an input plan (the preceding MATCH).
GraphMergeNode
Logical stub for MERGE (match-or-create write semantics).
GraphRemoveNode
Logical node for REMOVE <prop> (#791): the value-less dual of GraphSetNode. Emits a one-row summary properties_removed.
GraphSetNode
Logical node for SET <prop> = <expr> (#791): a property-write driven by an input plan (the preceding MATCH).
OntologyInferNode
Logical stub for ontology-driven semantic inference (transitive / symmetric closure expansion).
OptionalMatchNode
Physical node for OPTIONAL MATCH (LEFT OUTER semantics with openCypher null-shaping over a sub-plan).
PathUniqueNode
Logical stub for path-uniqueness filtering (eliminates paths that visit the same node or edge more than once).
RemoveTarget
One resolved REMOVE n.prop target (#791) — the value-less dual of SetTarget.
ResolvedEdgeSpec
An edge to create, fully resolved. See ResolvedNodeSpec.
ResolvedNodeSpec
A node to create, fully resolved (no expression-arena coupling).
SetTarget
One resolved SET n.prop = <expr> target (#791).
UnwindNode
Physical node for UNWIND — explodes a list expression into one row per element, binding each element to an alias variable.
VarLenExpandNode
Physical node for variable-length path expansion.

Constants§

VAR_LEN_EDGE_LIST_FIELD
Arrow field name of the variable-length edge-list column (qualified var_<edge_var>). openCypher binds the edge variable r in (a)-[r:KNOWS*1..3]->(b) to the list of relationships along each path.

Functions§

var_len_edge_list_field
The Arrow Field for the variable-length edge-list column: a nullable List<Struct<{edge_uuid, src_uuid, dst_uuid, rel_type, <props…>}>>.