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).
| Node | Triggered by |
|---|---|
VarLenExpandNode | Expand with max_hops != Some(1) |
OptionalMatchNode | Optional { child } |
PathUniqueNode | Expand with path-uniqueness flag |
OntologyInferNode | Expand on transitive/symmetric relation |
GraphMergeNode | Merge { pattern } |
UnwindNode | Unwind { list_expr, alias } |
Structs§
- Delete
Target - One resolved
DELETEtarget: a bound variable and whether it is an edge. - Expand
Node - Physical node for adjacency-backed single-hop expansion (#763).
- Graph
Create Node - Logical node for
CREATE: a write specification driven by an input plan. - Graph
Delete Node - Logical node for
DELETE/DETACH DELETE(#740): a delete specification driven by an input plan (the precedingMATCH). - Graph
Merge Node - Logical stub for
MERGE(match-or-create write semantics). - Graph
Remove Node - Logical node for
REMOVE <prop>(#791): the value-less dual ofGraphSetNode. Emits a one-row summaryproperties_removed. - Graph
SetNode - Logical node for
SET <prop> = <expr>(#791): a property-write driven by an input plan (the precedingMATCH). - Ontology
Infer Node - Logical stub for ontology-driven semantic inference (transitive / symmetric closure expansion).
- Optional
Match Node - Physical node for
OPTIONAL MATCH(LEFT OUTER semantics with openCypher null-shaping over a sub-plan). - Path
Unique Node - Logical stub for path-uniqueness filtering (eliminates paths that visit the same node or edge more than once).
- Remove
Target - One resolved
REMOVE n.proptarget (#791) — the value-less dual ofSetTarget. - Resolved
Edge Spec - An edge to create, fully resolved. See
ResolvedNodeSpec. - Resolved
Node Spec - A node to create, fully resolved (no expression-arena coupling).
- SetTarget
- One resolved
SET n.prop = <expr>target (#791). - Unwind
Node - Physical node for
UNWIND— explodes a list expression into one row per element, binding each element to an alias variable. - VarLen
Expand Node - 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 variablerin(a)-[r:KNOWS*1..3]->(b)to the list of relationships along each path.
Functions§
- var_
len_ edge_ list_ field - The Arrow
Fieldfor the variable-length edge-list column: a nullableList<Struct<{edge_uuid, src_uuid, dst_uuid, rel_type, <props…>}>>.