Dialects¶
Sqruff currently supports the following SQL dialects:
Dialects Index¶
- ansi
- athena
- bigquery
- clickhouse
- databricks
- db2
- doris
- duckdb
- exasol
- flink
- greenplum
- hive
- impala
- mariadb
- materialize
- mysql
- oracle
- postgres
- redshift
- snowflake
- sparksql
- sqlite
- starrocks
- teradata
- trino
- tsql
- vertica
Details¶
ansi¶
Standard SQL syntax. The default dialect and base for all others.
Default Casing: UPPERCASE
Quotes: String literals: ''; identifiers: "".
Configuration:
athena¶
Amazon Athena SQL dialect for querying data in S3.
Default Casing: lowercase
Quotes: String literals: '', "", or backticks; identifiers: "" or backticks.
Documentation: https://docs.aws.amazon.com/athena/latest/ug/ddl-sql-reference.html
Configuration:
bigquery¶
Google BigQuery SQL dialect for analytics and data warehousing.
Default Casing: BigQuery resolves unquoted column identifiers case-insensitively, and table and dataset identifiers case-sensitively by default. Columns retain the case used by each reference in result-set labels.
Quotes: String literals: '', "", @, or @@; quoted strings also support r/R raw or regex prefixes and b/B byte-string prefixes. Identifiers: "" or backticks.
Documentation: https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax
Configuration:
clickhouse¶
ClickHouse SQL dialect for real-time analytics.
Default Casing: ClickHouse is case-sensitive throughout, regardless of quoting. An unquoted reference using the wrong case raises an UNKNOWN_IDENTIFIER error.
Quotes: String literals: ''; identifiers: "" or backticks. Because identifiers are always resolved case-sensitively, quoting is only needed for invalid characters or reserved keywords.
Documentation: https://clickhouse.com/docs/en/sql-reference/
Configuration:
databricks¶
Databricks SQL dialect for lakehouse analytics.
Documentation: https://docs.databricks.com/en/sql/language-manual/index.html
Configuration:
db2¶
IBM Db2 SQL dialect.
Documentation: https://www.ibm.com/docs/en/i/7.4?topic=overview-db2-i
Configuration:
doris¶
Apache Doris SQL dialect, based on MySQL.
Default Casing: lowercase
Quotes: String literals: '', ""; identifiers: backticks.
Documentation: https://doris.apache.org/
Configuration:
duckdb¶
DuckDB SQL dialect for in-process analytical database.
Default Casing: DuckDB stores all identifiers in the case they were defined, but resolves both quoted and unquoted identifiers case-insensitively. See the DuckDB identifiers documentation.
Quotes: String literals: ''; identifiers: "" or ''.
Documentation: https://duckdb.org/docs/sql/introduction
Configuration:
exasol¶
Exasol SQL dialect for the Exasol analytics database.
Documentation: https://docs.exasol.com/db/latest/sql_references.htm
Configuration:
flink¶
Apache Flink SQL dialect for stream processing and table operations.
Default Casing: Case insensitive for quoted and unquoted identifiers.
Quotes: String literals: single quotes; identifiers: backticks.
Documentation: https://nightlies.apache.org/flink/flink-docs-release-1.18/docs/dev/table/sql/
Configuration:
greenplum¶
Greenplum SQL dialect, a massively parallel Postgres.
Documentation: https://docs.vmware.com/en/VMware-Greenplum/index.html
Configuration:
hive¶
Apache Hive SQL dialect for data warehousing.
Documentation: https://hive.apache.org/docs/latest/language/
Configuration:
impala¶
Apache Impala SQL dialect for distributed SQL queries.
Documentation: https://impala.apache.org/docs/build/html/topics/impala_langref.html
Configuration:
mariadb¶
MariaDB SQL dialect, a community-developed fork of MySQL.
Default Casing: lowercase
Quotes: String literals: '', "", or @; identifiers: backticks.
Documentation: https://mariadb.com/kb/en/sql-statements-structure/
Configuration:
materialize¶
Materialize SQL dialect for the streaming data warehouse.
Documentation: https://materialize.com/docs/sql/
Configuration:
mysql¶
MySQL SQL dialect for the popular open-source database.
Default Casing: lowercase
Quotes: String literals: '', "", or @; identifiers: backticks.
Documentation: https://dev.mysql.com/doc/
Configuration:
oracle¶
Oracle SQL dialect for Oracle Database.
Documentation: https://www.oracle.com/database/technologies/appdev/sql.html
Configuration:
postgres¶
PostgreSQL SQL dialect for the advanced open-source database.
Default Casing: lowercase
Quotes: String literals: ''; identifiers: "".
Documentation: https://www.postgresql.org/docs/current/sql.html
Configuration:
Options:
| Option | Description | Default |
|---|---|---|
pg_trgm |
Enable parsing of pg_trgm trigram operators (%, <%, %>, <->, etc.) | false |
pgvector |
Enable parsing of pgvector data types (VECTOR, HALFVEC, SPARSEVEC). | false |
Example:
redshift¶
Amazon Redshift SQL dialect for cloud data warehousing.
Default Casing: lowercase, unless case-sensitive identifiers are enabled and all identifiers use the enable_case_sensitive_identifier configuration value. See the Redshift names and identifiers documentation.
Quotes: String literals: ''; identifiers: "".
Documentation: https://docs.aws.amazon.com/redshift/latest/dg/cm_chap_SQLCommandRef.html
Configuration:
snowflake¶
Snowflake SQL dialect for cloud data platform.
Default Casing: UPPERCASE
Quotes: String literals: ''; identifiers: "".
Documentation: https://docs.snowflake.com/en/sql-reference.html
Configuration:
sparksql¶
Apache Spark SQL dialect for big data processing.
Default Casing: Spark SQL resolves both quoted and unquoted (delimited) identifiers case-insensitively. See the Spark identifiers documentation.
Quotes: String literals: '' or ""; identifiers: backticks.
Documentation: https://spark.apache.org/sql/
Configuration:
sqlite¶
SQLite SQL dialect for embedded database.
Default Casing: SQLite does not specify a default in its documentation. Testing indicates that it stores column names in their declared case but resolves them case-insensitively.
Quotes: String literals: '' (or "" when not resolved as an identifier); identifiers: "", [], or backticks. See the SQLite keywords documentation.
Documentation: https://www.sqlite.org/lang.html
Configuration:
starrocks¶
StarRocks SQL dialect for real-time analytical workloads.
Documentation: https://docs.starrocks.io/docs/sql-reference/
Configuration:
teradata¶
Teradata SQL dialect for the Teradata analytics platform.
Documentation: https://docs.teradata.com/
Configuration:
trino¶
Trino (formerly PrestoSQL) dialect for distributed SQL queries.
Default Casing: lowercase, although the case of a reference is used in its result-set column label.
Quotes: String literals: ''; identifiers: "".
Documentation: https://trino.io/docs/current/sql.html
Configuration:
tsql¶
T-SQL dialect for Microsoft SQL Server and Azure SQL.
Documentation: https://learn.microsoft.com/en-us/sql/t-sql/language-reference
Configuration:
vertica¶
Vertica SQL dialect for the columnar analytics database.
Documentation: https://docs.vertica.com/latest/en/
Configuration:
We are working on adding support for more dialects in the future.