yggdrasil.plan.sql_parser¶
sql_parser ¶
Full SQL query parser → plan nodes.
Reuses the tokenizer from :mod:yggdrasil.execution.expr.backends.sql
and extends the grammar from predicate-only to full SELECT/INSERT/MERGE
statements with CTEs, JOINs, GROUP BY, ORDER BY, HAVING, LATERAL VIEW,
window functions, function calls, CASE WHEN, and set operations.
Dialect-aware: the base parser handles ANSI + common extensions.
:class:DatabricksSQLParser (in :mod:databricks) adds Databricks
specifics (LATERAL VIEW EXPLODE, date_trunc, etc.).
SQLQueryParser ¶
Recursive-descent parser for full SQL queries.
parse_sql ¶
parse_sql(
sql: str,
*,
dialect: "Dialect | str | None" = None,
parser_class: type[SQLQueryParser] | None = None,
default: "Any" = ...
) -> "PlanNode | Any"
Parse a SQL query string into a :class:PlanNode tree.
When default is ... (the sentinel), parsing errors raise
:class:ValueError. When default is anything else, parsing
errors return default instead.