- All Implemented Interfaces:
Serializable
,Comparable<SQLDialect>
,Constable
The commercial jOOQ distributions support a variety of dialects, which are
grouped into dialect families. For instance, the PostgreSQL dialect family
POSTGRES
is specialised by its dialects
The open source jOOQ distributions only support the dialect family, which corresponds to the latest supported dialect version of the commercial distribution. A full list of mappings between dialect families and latest supported version can be seen here https://www.jooq.org/download/support-matrix.
If a dialect is documented but does not seem to be available in your jOOQ Edition, you may be using the wrong edition, e.g. because of a transitive dependency introduced by Spring Boot. See this article about how to exclude such transitive dependencies from your classpath https://blog.jooq.org/how-to-use-jooqs-commercial-distributions-with-spring-boot/.
- Author:
- Lukas Eder
-
Nested Class Summary
Modifier and TypeClassDescriptionfinal class
Third party representations of the enclosingSQLDialect
.Nested classes/interfaces inherited from class java.lang.Enum
Enum.EnumDesc<E extends Enum<E>>
-
Enum Constant Summary
Enum ConstantDescriptionThe MS Access dialect family.The MS Access 2013 dialect.The Sybase Adaptive Server dialect family.The Sybase Adaptive Server 12.5 dialect.The Sybase Adaptive Server 15.5 dialect.The Sybase Adaptive Server 15.7 dialect.The Sybase Adaptive Server 16.0 dialect.The Amazon Aurora MySQL Edition dialect family.The Amazon Aurora PostgreSQL Edition dialect family.The Google BigQuery dialect family.The CockroachDB dialect family.The CockroachDB 20 dialect.The CockroachDB 21 dialect.Deprecated, for removal: This API element is subject to removal in a future version.- [#9403] - 3.13.0 - This dialect is hardly used by anyone with jOOQ or without jOOQ and will be removed in the near future.The IBM DB2 dialect family.The IBM DB2 10.x dialect.The IBM DB2 11.x dialect.The IBM DB2 9.x dialect.The default SQL dialect.The Apache Derby dialect family.The EXASOL dialect.The Firebird dialect family.The Firebird 2.5 dialect.The Firebird 3.0 dialect.The Firebird 4.0 dialect.The H2 dialect family.The H2 1.4.197 dialect.The H2 1.4.200 dialect.The H2 2.0.202 dialect.The SAP HANA dialect.The Hypersonic dialect family.Deprecated, for removal: This API element is subject to removal in a future version.- [#12465] - 3.16.0 - This dialect is hardly used by anyone with jOOQ or without jOOQ and will be removed in the near future.The Informix dialect.Deprecated, for removal: This API element is subject to removal in a future version.- [#11515] - 3.15.0 - This dialect is hardly used by anyone with jOOQ or without jOOQ and will be removed in the near future.The jOOQ dialect producing compilable jOOQ / Java code.The MariaDB dialect family.The MariaDB 10.0 dialect.The MariaDB 10.1 dialect.The MariaDB 10.2 dialect.The MariaDB 10.3 dialect.The MariaDB 10.4 dialect.The MariaDB 10.5 dialect.The MariaDB 10.6 dialect.The MariaDB 10.7 dialect.The MemSQL dialect family.The MySQL dialect family.The MySQL 5.6 dialect.The MySQL 5.7 dialect.The MySQL 8.0.0 dialect.The MySQL 8.0.19 dialect.The MySQL 8.0.20 dialect.The Oracle dialect family.Deprecated, for removal: This API element is subject to removal in a future version.- [#11797] - 3.15.0 - This dialect is no longer supported.The Oracle 11g dialect.The Oracle 12c dialect.The Oracle 18c dialect.The Oracle 20c dialect.The Oracle 21c dialect.The PostgreSQL dialect family.The PostgreSQL 10 dialect.The PostgreSQL 11 dialect.The PostgreSQL 12 dialect.The PostgreSQL 13 dialect.The PostgreSQL 14 dialect.The PostgreSQL 9.3 dialect.The PostgreSQL 9.4 dialect.The PostgreSQL 9.5 dialect.Deprecated.- This dialect is not yet supported by jOOQ.The Amazon Redshift dialect.The Snowflake dialect.The SQL Data Warehouse (Azure Synapse Analytics) family.The SQLite dialect family.The SQLite 3.25 dialect.The SQLite 3.28 dialect.The SQLite 3.30 dialect.The SQLite 3.38 dialect.The SQL Server dialect family.The SQL Server 2008 dialect.The SQL Server 2012 dialect.The SQL Server 2014 dialect.The SQL Server 2016 dialect.The SQL Server 2016 dialect.The Sybase SQL Anywhere dialect family.The Teradata dialect family.The Vertica dialect family.The YugabyteDB dialect family.The YugabyteDB 2.9 dialect. -
Method Summary
Modifier and TypeMethodDescriptionfinal boolean
Whether this dialect is supported with the jOOQ commercial license only.static final @NotNull SQLDialect @NotNull []
families()
Get a list of allfamily()
values.final @NotNull SQLDialect
family()
The dialect family.final @NotNull String
getName()
The name of this dialect as it appears in related class names.final @NotNull String
The name of this dialect as it appears in related package names.final @NotNull String
The name of this dialect as it appears in related enum values.final boolean
isFamily()
Whether this dialect is afamily()
.final boolean
Whether this dialect is a versioned dialect or a family with versioned dialects.final boolean
precedes
(SQLDialect other) Whether this dialect precedes an other dialect from the same family.final @NotNull SQLDialect
The predecessor dialect.final @NotNull Set<SQLDialect>
The predecessor dialects.static final @NotNull Set<SQLDialect>
predecessors
(SQLDialect... dialects) Get a set of dialects preceding a given set of dialects.final boolean
Whether this dialect is supported by jOOQ as an output dialect.static final @NotNull Set<SQLDialect>
supportedBy
(SQLDialect dialect) Get a set of supported dialect versions and successors given a dialect version.static final @NotNull Set<SQLDialect>
supportedBy
(SQLDialect... dialects) Get a set of supported dialect versions and successors given a set of dialect versions.static final @NotNull Set<SQLDialect>
supportedUntil
(SQLDialect dialect) Get a set of supported dialect versions and predecessors given a dialect version.static final @NotNull Set<SQLDialect>
supportedUntil
(SQLDialect... dialects) Get a set of supported dialect versions and predecessors given a dialect version.final boolean
supports
(Collection<SQLDialect> other) Deprecated, for removal: This API element is subject to removal in a future version.- [#9882] - 3.14.0 - UsesupportedBy(SQLDialect...)
insteadfinal boolean
supports
(SQLDialect other) Check whether this dialect supports another one.final boolean
supportsDatabaseVersion
(int majorVersion, int minorVersion, String productVersion) Check if thisSQLDialect
supports a JDBCDatabaseMetaData.getDatabaseMajorVersion()
,DatabaseMetaData.getDatabaseMinorVersion()
, patch version.final @NotNull SQLDialect.ThirdParty
Get access to third party representations of thisSQLDialect
.static SQLDialect
Returns the enum constant of this class with the specified name.static SQLDialect[]
values()
Returns an array containing the constants of this enum class, in the order they are declared.
-
Enum Constant Details
-
DEFAULT
The default SQL dialect.This dialect is chosen in the absence of a more explicit dialect. It is not intended to be used with any actual database as it may combined dialect-specific things from various dialects.
-
CUBRID
Deprecated, for removal: This API element is subject to removal in a future version.- [#9403] - 3.13.0 - This dialect is hardly used by anyone with jOOQ or without jOOQ and will be removed in the near future.The CUBRID dialect family. -
DERBY
The Apache Derby dialect family. -
FIREBIRD
The Firebird dialect family.This family behaves like the versioned dialect
FIREBIRD_4_0
. -
FIREBIRD_2_5
The Firebird 2.5 dialect.This dialect is available in commercial jOOQ distributions, only.
-
FIREBIRD_3_0
The Firebird 3.0 dialect.This dialect is available in commercial jOOQ distributions, only.
-
FIREBIRD_4_0
The Firebird 4.0 dialect.This dialect is available in commercial jOOQ distributions, only.
-
H2
The H2 dialect family. -
H2_1_4_197
The H2 1.4.197 dialect.This dialect is available in commercial jOOQ distributions, only.
-
H2_1_4_200
The H2 1.4.200 dialect.This dialect is available in commercial jOOQ distributions, only.
-
H2_2_0_202
The H2 2.0.202 dialect.This dialect is available in commercial jOOQ distributions, only.
-
HSQLDB
The Hypersonic dialect family. -
IGNITE
Deprecated, for removal: This API element is subject to removal in a future version.- [#12465] - 3.16.0 - This dialect is hardly used by anyone with jOOQ or without jOOQ and will be removed in the near future. If you're actively using this dialect, please get in touch for extended support: https://github.com/jOOQ/jOOQ/issues/12465The Apache Ignite dialect family. -
MARIADB
The MariaDB dialect family.This family behaves like the versioned dialect
MARIADB_10_7
. -
MARIADB_10_0
The MariaDB 10.0 dialect.This dialect is available in commercial jOOQ distributions, only.
-
MARIADB_10_1
The MariaDB 10.1 dialect.This dialect is available in commercial jOOQ distributions, only.
-
MARIADB_10_2
The MariaDB 10.2 dialect.This dialect is available in commercial jOOQ distributions, only.
-
MARIADB_10_3
The MariaDB 10.3 dialect.This dialect is available in commercial jOOQ distributions, only.
-
MARIADB_10_4
The MariaDB 10.4 dialect.This dialect is available in commercial jOOQ distributions, only.
-
MARIADB_10_5
The MariaDB 10.5 dialect.This dialect is available in commercial jOOQ distributions, only.
-
MARIADB_10_6
The MariaDB 10.6 dialect.This dialect is available in commercial jOOQ distributions, only.
-
MARIADB_10_7
The MariaDB 10.7 dialect.This dialect is available in commercial jOOQ distributions, only.
-
MYSQL
The MySQL dialect family.This family behaves like the versioned dialect
MYSQL_8_0_20
. -
MYSQL_5_6
The MySQL 5.6 dialect.This dialect is available in commercial jOOQ distributions, only.
-
MYSQL_5_7
The MySQL 5.7 dialect.This dialect is available in commercial jOOQ distributions, only.
-
MYSQL_8_0
The MySQL 8.0.0 dialect.This dialect is available in commercial jOOQ distributions, only.
-
MYSQL_8_0_19
The MySQL 8.0.19 dialect.This dialect is available in commercial jOOQ distributions, only.
-
MYSQL_8_0_20
The MySQL 8.0.20 dialect.This dialect is available in commercial jOOQ distributions, only.
-
POSTGRES
The PostgreSQL dialect family.This family behaves like the versioned dialect
POSTGRES_14
.While this family (and its dialects) have been observed to work to some extent on Amazon RedShift as well, we strongly suggest you use the official
REDSHIFT
support, instead. -
POSTGRES_9_3
The PostgreSQL 9.3 dialect.While this family (and its dialects) have been observed to work to some extent on Amazon RedShift as well, we strongly suggest you use the official
REDSHIFT
support, instead.This dialect is available in commercial jOOQ distributions, only.
-
POSTGRES_9_4
The PostgreSQL 9.4 dialect.While this family (and its dialects) have been observed to work to some extent on Amazon RedShift as well, we strongly suggest you use the official
REDSHIFT
support, instead.This dialect is available in commercial jOOQ distributions, only.
-
POSTGRES_9_5
The PostgreSQL 9.5 dialect.While this family (and its dialects) have been observed to work to some extent on Amazon RedShift as well, we strongly suggest you use the official
REDSHIFT
support, instead.This dialect is available in commercial jOOQ distributions, only.
-
POSTGRES_10
The PostgreSQL 10 dialect.While this family (and its dialects) have been observed to work to some extent on Amazon RedShift as well, we strongly suggest you use the official
REDSHIFT
support, instead.This dialect is available in commercial jOOQ distributions, only.
-
POSTGRES_11
The PostgreSQL 11 dialect.While this family (and its dialects) have been observed to work to some extent on Amazon RedShift as well, we strongly suggest you use the official
REDSHIFT
support, instead.This dialect is available in commercial jOOQ distributions, only.
-
POSTGRES_12
The PostgreSQL 12 dialect.While this family (and its dialects) have been observed to work to some extent on Amazon RedShift as well, we strongly suggest you use the official
REDSHIFT
support, instead.This dialect is available in commercial jOOQ distributions, only.
-
POSTGRES_13
The PostgreSQL 13 dialect.While this family (and its dialects) have been observed to work to some extent on Amazon RedShift as well, we strongly suggest you use the official
REDSHIFT
support, instead.This dialect is available in commercial jOOQ distributions, only.
-
POSTGRES_14
The PostgreSQL 14 dialect.While this family (and its dialects) have been observed to work to some extent on Amazon RedShift as well, we strongly suggest you use the official
REDSHIFT
support, instead.This dialect is available in commercial jOOQ distributions, only.
-
SQLITE
The SQLite dialect family.This family behaves like the versioned dialect
SQLITE_3_38
. -
SQLITE_3_25
The SQLite 3.25 dialect.This dialect is available in commercial jOOQ distributions, only.
-
SQLITE_3_28
The SQLite 3.28 dialect.This dialect is available in commercial jOOQ distributions, only.
-
SQLITE_3_30
The SQLite 3.30 dialect.This dialect is available in commercial jOOQ distributions, only.
-
SQLITE_3_38
The SQLite 3.38 dialect.This dialect is available in commercial jOOQ distributions, only.
-
YUGABYTEDB
The YugabyteDB dialect family. -
YUGABYTEDB_2_9
The YugabyteDB 2.9 dialect.This dialect is available in commercial jOOQ distributions, only.
-
ACCESS
The MS Access dialect family.This family behaves like the versioned dialect
ACCESS2013
.This dialect is available in commercial jOOQ distributions, only.
-
ACCESS2013
The MS Access 2013 dialect.This dialect is available in commercial jOOQ distributions, only.
-
ASE
The Sybase Adaptive Server dialect family.This family behaves like the versioned dialect
ASE_16_0
.This dialect is available in commercial jOOQ distributions, only.
-
ASE_12_5
The Sybase Adaptive Server 12.5 dialect.This dialect is available in commercial jOOQ distributions, only.
-
ASE_15_5
The Sybase Adaptive Server 15.5 dialect.This dialect is available in commercial jOOQ distributions, only.
-
ASE_15_7
The Sybase Adaptive Server 15.7 dialect.This dialect is available in commercial jOOQ distributions, only.
-
ASE_16_0
The Sybase Adaptive Server 16.0 dialect.This dialect is available in commercial jOOQ distributions, only.
-
AURORA_MYSQL
The Amazon Aurora MySQL Edition dialect family.This dialect is available in commercial jOOQ distributions, only.
-
AURORA_POSTGRES
The Amazon Aurora PostgreSQL Edition dialect family.This dialect is available in commercial jOOQ distributions, only.
-
BIGQUERY
The Google BigQuery dialect family.This dialect is available in commercial jOOQ distributions, only.
-
COCKROACHDB
The CockroachDB dialect family.This family behaves like the versioned dialect
COCKROACHDB_21
.This dialect is available in commercial jOOQ distributions, only.
-
COCKROACHDB_20
The CockroachDB 20 dialect.This dialect is available in commercial jOOQ distributions, only.
-
COCKROACHDB_21
The CockroachDB 21 dialect.This dialect is available in commercial jOOQ distributions, only.
-
DB2
The IBM DB2 dialect family.This family behaves like the versioned dialect
DB2_11
.This dialect is available in commercial jOOQ distributions, only.
-
DB2_9
The IBM DB2 9.x dialect.This dialect is available in commercial jOOQ distributions, only.
-
DB2_10
The IBM DB2 10.x dialect.This dialect is available in commercial jOOQ distributions, only.
-
DB2_11
The IBM DB2 11.x dialect.This dialect is available in commercial jOOQ distributions, only.
-
EXASOL
The EXASOL dialect.This dialect is available in commercial jOOQ distributions, only.
-
HANA
The SAP HANA dialect.This dialect is available in commercial jOOQ distributions, only.
-
INFORMIX
The Informix dialect.This dialect is available in commercial jOOQ distributions, only.
-
INGRES
Deprecated, for removal: This API element is subject to removal in a future version.- [#11515] - 3.15.0 - This dialect is hardly used by anyone with jOOQ or without jOOQ and will be removed in the near future. If you're actively using this dialect, please get in touch for extended support: https://github.com/jOOQ/jOOQ/issues/11515The Ingres dialect family.This dialect is available in commercial jOOQ distributions, only.
-
MEMSQL
The MemSQL dialect family.This dialect is available in commercial jOOQ distributions, only.
-
ORACLE
The Oracle dialect family.This family behaves like the versioned dialect
ORACLE20C
.This dialect is available in commercial jOOQ distributions, only.
-
ORACLE10G
Deprecated, for removal: This API element is subject to removal in a future version.- [#11797] - 3.15.0 - This dialect is no longer supported. If you continue to require support for Oracle 10g, please get in touch here: https://github.com/jOOQ/jOOQ/issues/11797The Oracle 10g dialect.This dialect is available in commercial jOOQ distributions, only.
-
ORACLE11G
The Oracle 11g dialect.This dialect is available in commercial jOOQ distributions, only.
-
ORACLE12C
The Oracle 12c dialect.This dialect is available in commercial jOOQ distributions, only.
-
ORACLE18C
The Oracle 18c dialect.This dialect is available in commercial jOOQ distributions, only.
-
ORACLE20C
The Oracle 20c dialect.This dialect is available in commercial jOOQ distributions, only.
-
ORACLE21C
The Oracle 21c dialect.This dialect is available in commercial jOOQ distributions, only.
-
POSTGRESPLUS
Deprecated.- This dialect is not yet supported by jOOQ.The Postgres Plus dialect family.This dialect is available in commercial jOOQ distributions, only.
-
REDSHIFT
The Amazon Redshift dialect.This dialect is available in commercial jOOQ distributions, only.
-
SNOWFLAKE
The Snowflake dialect.This dialect is available in commercial jOOQ distributions, only.
-
SQLSERVER
The SQL Server dialect family.This family behaves like the versioned dialect
SQLSERVER2017
.Use this family (or its dialects) for SQL Server or Azure SQL Database.
This dialect is available in commercial jOOQ distributions, only.
-
SQLSERVER2008
The SQL Server 2008 dialect.Use this family (or its dialects) for SQL Server or Azure SQL Database.
This dialect is available in commercial jOOQ distributions, only.
-
SQLSERVER2012
The SQL Server 2012 dialect.Use this family (or its dialects) for SQL Server or Azure SQL Database.
This dialect is available in commercial jOOQ distributions, only.
-
SQLSERVER2014
The SQL Server 2014 dialect.Use this family (or its dialects) for SQL Server or Azure SQL Database.
This dialect is available in commercial jOOQ distributions, only.
-
SQLSERVER2016
The SQL Server 2016 dialect.Use this family (or its dialects) for SQL Server or Azure SQL Database.
This dialect is available in commercial jOOQ distributions, only.
-
SQLSERVER2017
The SQL Server 2016 dialect.Use this family (or its dialects) for SQL Server or Azure SQL Database.
This dialect is available in commercial jOOQ distributions, only.
-
SQLDATAWAREHOUSE
The SQL Data Warehouse (Azure Synapse Analytics) family.This dialect is available in commercial jOOQ distributions, only.
-
SYBASE
The Sybase SQL Anywhere dialect family.This dialect is available in commercial jOOQ distributions, only.
-
TERADATA
The Teradata dialect family.This dialect is available in commercial jOOQ distributions, only.
-
VERTICA
The Vertica dialect family.This dialect is available in commercial jOOQ distributions, only.
-
JAVA
The jOOQ dialect producing compilable jOOQ / Java code.This is EXPERIMENTAL functionality. The current implementation supports:
It does not yet support:- Support for other DML statements, like
Insert
,Update
,Delete
,Merge
- Support for DDL statements
- Support for common table expressions (CTEs,
WITH
clause). - Support for derived tables.
- Limited support for aliasing
This dialect is available in commercial jOOQ distributions, only.
- Support for other DML statements, like
-
-
Method Details
-
values
Returns an array containing the constants of this enum class, in the order they are declared.- Returns:
- an array containing the constants of this enum class, in the order they are declared
-
valueOf
Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)- Parameters:
name
- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
IllegalArgumentException
- if this enum class has no constant with the specified nameNullPointerException
- if the argument is null
-
families
Get a list of allfamily()
values. -
predecessors
Get a set of dialects preceding a given set of dialects.The resulting set of dialects contain all the families and dialect versions that precede the argument dialects, including the argument dialects.
-
supportedUntil
Get a set of supported dialect versions and predecessors given a dialect version.The resulting set of dialects contain all the families and dialect versions that precede the argument dialect, including the argument dialect.
-
supportedUntil
Get a set of supported dialect versions and predecessors given a dialect version.The resulting set of dialects contain all the families and dialect versions that precede the argument dialect, including the argument dialects.
-
supportedBy
Get a set of supported dialect versions and successors given a dialect version.The resulting set of dialects contain all the families and dialect versions that support the argument dialect, i.e. that succeed it, including the argument dialect.
-
supportedBy
Get a set of supported dialect versions and successors given a set of dialect versions.The resulting set of dialects contain all the families and dialect versions that support the argument dialects, i.e. that succeed them, including the argument dialects.
-
commercial
public final boolean commercial()Whether this dialect is supported with the jOOQ commercial license only. -
supported
public final boolean supported()Whether this dialect is supported by jOOQ as an output dialect.Unsupported, non-output dialects include:
DEFAULT
: A hypothetical dialect used forQueryPart.toString()
calls of unattached query parts.POSTGRESPLUS
: A not yet supported dialect.
-
family
The dialect family.This returns the dialect itself, if it has no "parent family". E.g.
SQLSERVER == SQLSERVER2012.family(); SQLSERVER == SQLSERVER2008.family(); SQLSERVER == SQLSERVER.family();
-
isFamily
public final boolean isFamily()Whether this dialect is afamily()
. -
isVersioned
public final boolean isVersioned()Whether this dialect is a versioned dialect or a family with versioned dialects. -
predecessor
The predecessor dialect.If this is a dialect version (e.g.
POSTGRES_9_4
) within a family (e.g.POSTGRES
), then the predecessor will point to the historically previous dialect version (e.g.POSTGRES_9_3
) within the same family, or to the dialect itself if there was no predecessor explicitly supported by jOOQ. -
predecessors
The predecessor dialects.Recursively calls
predecessor()
and finds all the preceding dialects to this one, including this one. -
precedes
Whether this dialect precedes an other dialect from the same family.This returns:
true
if this dialect is the same as the other dialecttrue
if this dialect precedes the other dialect via any number of calls topredecessor()
false
if the two dialects do not belong to the same family
This is useful to see if some feature is supported by "at least" a given dialect version. Example:
// Do this block only if the chosen dialect supports PostgreSQL 9.4+ features if (POSTGRES_9_4.precedes(dialect)) { } // Do this block only if the chosen dialect supports PostgreSQL 9.3+ features else if (POSTGRES_9_3.precedes(dialect)) { } // Fall back to pre-PostgreSQL 9.3 behaviour else { }
-
supports
Check whether this dialect supports another one.This is:
false
if dialects don't belong to the same familytrue
if either dialectisFamily()
true
ifother
dialect precedes this dialect
The
other
argument dialect is typically referenced from aSupport
annotation, whereas this dialect is the user dialect. -
supports
@Deprecated(forRemoval=true, since="3.14") public final boolean supports(Collection<SQLDialect> other) Deprecated, for removal: This API element is subject to removal in a future version.- [#9882] - 3.14.0 - UsesupportedBy(SQLDialect...)
insteadCheck whether this dialect supports any dialect from the argument collection. -
supportsDatabaseVersion
public final boolean supportsDatabaseVersion(int majorVersion, int minorVersion, String productVersion) Check if thisSQLDialect
supports a JDBCDatabaseMetaData.getDatabaseMajorVersion()
,DatabaseMetaData.getDatabaseMinorVersion()
, patch version. -
getName
The name of this dialect as it appears in related class names. -
getNameLC
The name of this dialect as it appears in related package names. -
getNameUC
The name of this dialect as it appears in related enum values. -
thirdParty
Get access to third party representations of thisSQLDialect
.
-