Expand description
SQL Dialect System
This module implements the dialect abstraction layer that enables SQL transpilation between 30+ database engines. Each dialect encapsulates three concerns:
- Tokenization: Dialect-specific lexing rules (e.g., BigQuery uses backtick quoting, MySQL uses backtick for identifiers, TSQL uses square brackets).
- Generation: How AST nodes are rendered back to SQL text, including identifier quoting style, function name casing, and syntax variations.
- Transformation: AST-level rewrites that convert dialect-specific constructs to/from
a normalized form (e.g., Snowflake
SQUARE(x)becomesPOWER(x, 2)).
The primary entry point is Dialect::get, which returns a configured Dialect instance
for a given DialectType. From there, callers can parse,
generate, transform, or
transpile_to another dialect in a single call.
Each concrete dialect (e.g., PostgresDialect, BigQueryDialect) implements the
DialectImpl trait, which provides configuration hooks and expression-level transforms.
Dialect modules live in submodules of this module and are re-exported here.
Structs§
- Athena
Dialect - Athena dialect (based on Trino for DML operations)
- BigQuery
Dialect - BigQuery dialect
- Click
House Dialect - ClickHouse dialect
- CockroachDB
Dialect - CockroachDB dialect (PostgreSQL-compatible distributed database)
- Databricks
Dialect - Databricks dialect
- Dialect
- Main entry point for dialect-specific SQL operations.
- Doris
Dialect - Doris dialect
- Dremio
Dialect - Dremio dialect
- Drill
Dialect - Apache Drill dialect
- Druid
Dialect - Apache Druid dialect
- DuckDB
Dialect - DuckDB dialect
- Dune
Dialect - Dune Analytics dialect (based on Trino)
- Exasol
Dialect - Exasol dialect
- Fabric
Dialect - Microsoft Fabric Data Warehouse dialect (based on T-SQL)
- Generic
Dialect - Generic SQL dialect (ANSI SQL)
- Hive
Dialect - Hive dialect
- Materialize
Dialect - Materialize dialect (PostgreSQL-compatible streaming database)
- MySQL
Dialect - MySQL dialect
- Oracle
Dialect - Oracle dialect
- Postgres
Dialect - PostgreSQL dialect
- Presto
Dialect - Presto dialect
- Redshift
Dialect - Redshift dialect
- Rising
Wave Dialect - RisingWave dialect (PostgreSQL-compatible streaming database)
- SQLite
Dialect - SQLite dialect
- Single
Store Dialect - SingleStore dialect (MySQL-compatible distributed database)
- Snowflake
Dialect - Snowflake dialect
- Solr
Dialect - Apache Solr dialect
- Spark
Dialect - Spark SQL dialect
- Star
Rocks Dialect - StarRocks dialect
- TSQL
Dialect - T-SQL (SQL Server) dialect
- Tableau
Dialect - Tableau dialect
- Teradata
Dialect - Teradata dialect
- TiDB
Dialect - TiDB dialect (MySQL-compatible distributed database)
- Trino
Dialect - Trino dialect
Enums§
- Dialect
Type - Enumeration of all supported SQL dialects.
Traits§
- Dialect
Impl - Trait that each concrete SQL dialect must implement.
Functions§
- transform_
recursive - Applies a transform function bottom-up through an entire expression tree.