Skip to content

Dialects

Sqruff currently supports the following SQL dialects:

Dialects Index

Details

ansi

Standard SQL syntax. The default dialect and base for all others.

Default Casing: UPPERCASE

Quotes: String literals: ''; identifiers: "".

Configuration:

[sqruff:dialect:ansi]

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:

[sqruff:dialect:athena]

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:

[sqruff:dialect:bigquery]

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:

[sqruff:dialect:clickhouse]

databricks

Databricks SQL dialect for lakehouse analytics.

Documentation: https://docs.databricks.com/en/sql/language-manual/index.html

Configuration:

[sqruff:dialect:databricks]

db2

IBM Db2 SQL dialect.

Documentation: https://www.ibm.com/docs/en/i/7.4?topic=overview-db2-i

Configuration:

[sqruff:dialect:db2]

doris

Apache Doris SQL dialect, based on MySQL.

Default Casing: lowercase

Quotes: String literals: '', ""; identifiers: backticks.

Documentation: https://doris.apache.org/

Configuration:

[sqruff:dialect:doris]

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:

[sqruff:dialect:duckdb]

exasol

Exasol SQL dialect for the Exasol analytics database.

Documentation: https://docs.exasol.com/db/latest/sql_references.htm

Configuration:

[sqruff:dialect:exasol]

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:

[sqruff:dialect:flink]

greenplum

Greenplum SQL dialect, a massively parallel Postgres.

Documentation: https://docs.vmware.com/en/VMware-Greenplum/index.html

Configuration:

[sqruff:dialect:greenplum]

hive

Apache Hive SQL dialect for data warehousing.

Documentation: https://hive.apache.org/docs/latest/language/

Configuration:

[sqruff:dialect:hive]

impala

Apache Impala SQL dialect for distributed SQL queries.

Documentation: https://impala.apache.org/docs/build/html/topics/impala_langref.html

Configuration:

[sqruff:dialect:impala]

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:

[sqruff:dialect:mariadb]

materialize

Materialize SQL dialect for the streaming data warehouse.

Documentation: https://materialize.com/docs/sql/

Configuration:

[sqruff:dialect:materialize]

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:

[sqruff:dialect:mysql]

oracle

Oracle SQL dialect for Oracle Database.

Documentation: https://www.oracle.com/database/technologies/appdev/sql.html

Configuration:

[sqruff:dialect:oracle]

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:

[sqruff:dialect:postgres]

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:

[sqruff:dialect:postgres]
pg_trgm = true
pgvector = true

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:

[sqruff:dialect:redshift]

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:

[sqruff:dialect:snowflake]

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:

[sqruff:dialect:sparksql]

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:

[sqruff:dialect:sqlite]

starrocks

StarRocks SQL dialect for real-time analytical workloads.

Documentation: https://docs.starrocks.io/docs/sql-reference/

Configuration:

[sqruff:dialect:starrocks]

teradata

Teradata SQL dialect for the Teradata analytics platform.

Documentation: https://docs.teradata.com/

Configuration:

[sqruff:dialect:teradata]

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:

[sqruff:dialect:trino]

tsql

T-SQL dialect for Microsoft SQL Server and Azure SQL.

Documentation: https://learn.microsoft.com/en-us/sql/t-sql/language-reference

Configuration:

[sqruff:dialect:tsql]

vertica

Vertica SQL dialect for the columnar analytics database.

Documentation: https://docs.vertica.com/latest/en/

Configuration:

[sqruff:dialect:vertica]

We are working on adding support for more dialects in the future.