Skip to main content

Module lowerer

Module lowerer 

Source
Expand description

GraphPlanLowerer — converts a GraphPlan operator pipeline into a DataFusion LogicalPlan.

§Scope (M12 #575 + #576)

GraphOpDataFusion node
Filter { predicate }Filter
Project { items, distinct }Projection (+ optional Distinct)
Aggregate { group_by, aggs }Aggregate
Sort { keys }Sort
Limit { count }Limit (skip=0, fetch=count)
Skip { count }Limit (skip=count, fetch=None)
NodeScan { var, ty }TableScan("var_N") + optional Filter(type_id)
TypedEdgeScan { var, rel_ty }TableScan("edges_NAME") or exploratory fallback
EdgeScan { var, ty }TableScan("edges__exploratory") + optional filter
Expand { .. min_hops=1, max_hops=Some(1) }provider-backed ExpandNode (relational fallback for schema-only/bound-edge plans)
Expand { variable-length }VarLenExpandNode (graphforge-plan Extension stub)
Optional { child }OptionalMatchNode (graphforge-plan Extension stub)
Exists { child, .. }LeftSemi / LeftAnti join; correlated key union for alternatives
PatternComprehension { child, .. }correlated aggregate + left join
ListElementPatternComprehension { .. }ordinal unwind + correlated aggregate + regroup
Unwind { list_expr, alias }UnwindNode (graphforge-plan Extension stub)

Graph-native operators (#578) lower to graphforge-plan logical stub nodes wrapped as LogicalPlan::Extension; their physical execution is deferred to M13.

Structs§

GraphPlanLowerer
Converts a GraphPlan operator pipeline into a DataFusion LogicalPlan.