Skip to main content

Module emit

Module emit 

Source
Expand description

Lowers IR (PlanNode/SqlExpr) to a concrete SQL string for a given Dialect.

The emitter expects each plan tree to have a PlanNode::Project at the top (directly, or under a PlanNode::Union). Beneath the project lives a chain of PlanNode::Filter and PlanNode::LateralUnnest nodes, rooted in a PlanNode::Scan. The emitter walks that chain to assemble FROM / JOIN / WHERE / SELECT in dialect-appropriate syntax, then concatenates them.

Stages 2–5 progressively add IR-variant coverage. Anything the emitter doesn’t yet understand returns SofError::Uncompilable.

Structs§

EmittedSql
Compiled output for a single ViewDefinition.

Functions§

emit_plan
Lowers a plan tree to SQL for the given dialect.