Skip to content

yggdrasil.plan.ops

ops

Lightweight operation descriptors for execution plans.

Each dataclass is a value-only record — no behavior, no engine imports. The execution engine reads these and dispatches to the appropriate Tabular / Arrow / Spark surface.

JoinOp dataclass

JoinOp(
    right: Tabular, on: list[str], how: JoinType, right_suffix: str = "_right"
)

A pending join between the current result and right.

UnionOp dataclass

UnionOp(other: Tabular, mode: Mode)

A pending UNION ALL with other.

ResampleOp dataclass

ResampleOp(
    time_column: str,
    sampling_seconds: int,
    partition_by: list[str],
    fill_strategy: str | None = "ffill",
)

A pending time-grid resample.

TableRef dataclass

TableRef(
    name: str,
    alias: str | None = None,
    schema: str | None = None,
    catalog: str | None = None,
)

A concrete table reference in a FROM clause.

SubqueryRef dataclass

SubqueryRef(plan: Any, alias: str)

A subquery in a FROM clause: (SELECT ...) AS alias.

JoinClause dataclass

JoinClause(
    left: Any, right: Any, join_type: JoinType, on: Predicate | None = None
)

A SQL JOIN between two from-items.

LateralViewItem dataclass

LateralViewItem(
    function: Expression, table_alias: str, column_aliases: list[str] = list()
)

A LATERAL VIEW clause: LATERAL VIEW func(expr) alias AS col1, col2.

CTE dataclass

CTE(name: str, plan: Any)

A WITH clause entry: name AS (plan).

SetOp dataclass

SetOp(kind: str, plan: Any)

A set operation between two queries.

GroupByOp dataclass

GroupByOp(keys: list[str], aggregations: dict[str, str])

A pending GROUP BY operation.

OrderByOp dataclass

OrderByOp(keys: list[tuple[str, bool]])

A pending ORDER BY operation.

ValuesRef dataclass

ValuesRef(
    values: list, alias: str = "_values", columns: list[str] | None = None
)

An inline VALUES (...), (...) AS alias [(col1, col2, ...)] in FROM.

Carries the raw row data (list of lists of Expression nodes) and optional column aliases. The executor materialises it as an in-memory table by evaluating each row's literal/expression values.