Skip to main content

Module dialects

Module dialects 

Source
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) becomes POWER(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§

AthenaDialect
Athena dialect (based on Trino for DML operations)
BigQueryDialect
BigQuery dialect
ClickHouseDialect
ClickHouse dialect
CockroachDBDialect
CockroachDB dialect (PostgreSQL-compatible distributed database)
DatabricksDialect
Databricks dialect
Dialect
Main entry point for dialect-specific SQL operations.
DorisDialect
Doris dialect
DremioDialect
Dremio dialect
DrillDialect
Apache Drill dialect
DruidDialect
Apache Druid dialect
DuckDBDialect
DuckDB dialect
DuneDialect
Dune Analytics dialect (based on Trino)
ExasolDialect
Exasol dialect
FabricDialect
Microsoft Fabric Data Warehouse dialect (based on T-SQL)
GenericDialect
Generic SQL dialect (ANSI SQL)
HiveDialect
Hive dialect
MaterializeDialect
Materialize dialect (PostgreSQL-compatible streaming database)
MySQLDialect
MySQL dialect
OracleDialect
Oracle dialect
PostgresDialect
PostgreSQL dialect
PrestoDialect
Presto dialect
RedshiftDialect
Redshift dialect
RisingWaveDialect
RisingWave dialect (PostgreSQL-compatible streaming database)
SQLiteDialect
SQLite dialect
SingleStoreDialect
SingleStore dialect (MySQL-compatible distributed database)
SnowflakeDialect
Snowflake dialect
SolrDialect
Apache Solr dialect
SparkDialect
Spark SQL dialect
StarRocksDialect
StarRocks dialect
TSQLDialect
T-SQL (SQL Server) dialect
TableauDialect
Tableau dialect
TeradataDialect
Teradata dialect
TiDBDialect
TiDB dialect (MySQL-compatible distributed database)
TrinoDialect
Trino dialect

Enums§

DialectType
Enumeration of all supported SQL dialects.

Traits§

DialectImpl
Trait that each concrete SQL dialect must implement.

Functions§

transform_recursive
Applies a transform function bottom-up through an entire expression tree.