yggdrasil.plan.nodes¶
nodes ¶
Immutable plan-node tree for SQL-like execution plans.
Each node is a frozen dataclass describing one relational operation. Composite plans (CTEs, subqueries, joins) compose by nesting nodes.
The tree is pure data — execution lives in :mod:execute, SQL
emission in :mod:emitters.sql, parsing in :mod:parsers.
PlanNode ¶
Abstract base for all plan nodes.
Subclasses are frozen dataclasses. The base provides
:meth:from_sql and :meth:to_sql hooks so every node
can round-trip through SQL.
from_sql
classmethod
¶
from_sql(
sql: str, dialect: "Dialect | str | None" = None, default: "Any" = ...
) -> "PlanNode | Any"
Parse SQL into a plan node. Returns default on failure
when default is not ...; raises otherwise.
ScanNode
dataclass
¶
SelectNode
dataclass
¶
SelectNode(
projections: list[Any] = list(),
from_clause: FromItem | PlanNode | None = None,
where: "Predicate | None" = None,
group_by: list[Any] | None = None,
having: "Predicate | None" = None,
qualify: "Predicate | None" = None,
order_by: list[Any] | None = None,
limit: int | None = None,
offset: int | None = None,
distinct: bool = False,
ctes: list[CTE] | None = None,
set_ops: list[SetOp] | None = None,
lateral_views: list[LateralViewItem] | None = None,
)
Bases: PlanNode
SELECT [DISTINCT] projections FROM source [WHERE ...] [GROUP BY ...] ...
from_sql
classmethod
¶
from_sql(
sql: str, dialect: "Dialect | str | None" = None, default: "Any" = ...
) -> "PlanNode | Any"
Parse SQL into a plan node. Returns default on failure
when default is not ...; raises otherwise.