Module org.jooq
Package org.jooq

Enum Class SQLDialect

All Implemented Interfaces:
Serializable, Comparable<SQLDialect>, Constable

public enum SQLDialect extends Enum<SQLDialect>
Dialects and dialect families as supported by jOOQ.

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/2019/06/26/how-to-use-jooqs-commercial-distributions-with-spring-boot/.

Author:
Lukas Eder
  • Enum Constant Details

    • DEFAULT

      public static final SQLDialect 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(forRemoval=true, since="3.13") public static final SQLDialect 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

      public static final SQLDialect DERBY
      The Apache Derby dialect family.
    • FIREBIRD

      public static final SQLDialect FIREBIRD
      The Firebird dialect family.

      This family behaves like the versioned dialect FIREBIRD_3_0.

    • FIREBIRD_2_5

      @Pro public static final SQLDialect FIREBIRD_2_5
      The Firebird 2.5 dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • FIREBIRD_3_0

      @Pro public static final SQLDialect FIREBIRD_3_0
      The Firebird 3.0 dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • FIREBIRD_4_0

      @Pro public static final SQLDialect FIREBIRD_4_0
      The Firebird 4.0 dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • H2

      public static final SQLDialect H2
      The H2 dialect family.
    • H2_1_4_197

      @Pro public static final SQLDialect H2_1_4_197
      The H2 1.4.197 dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • H2_1_4_200

      @Pro public static final SQLDialect H2_1_4_200
      The H2 1.4.200 dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • H2_2_0_202

      @Pro public static final SQLDialect H2_2_0_202
      The H2 2.0.202 dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • HSQLDB

      public static final SQLDialect HSQLDB
      The Hypersonic dialect family.
    • IGNITE

      @Deprecated(forRemoval=true, since="3.16") public static final SQLDialect 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/12465
      The Apache Ignite dialect family.
    • MARIADB

      public static final SQLDialect MARIADB
      The MariaDB dialect family.

      This family behaves like the versioned dialect MARIADB_10_5.

    • MARIADB_10_0

      @Pro public static final SQLDialect MARIADB_10_0
      The MariaDB 10.0 dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • MARIADB_10_1

      @Pro public static final SQLDialect MARIADB_10_1
      The MariaDB 10.1 dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • MARIADB_10_2

      @Pro public static final SQLDialect MARIADB_10_2
      The MariaDB 10.2 dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • MARIADB_10_3

      @Pro public static final SQLDialect MARIADB_10_3
      The MariaDB 10.3 dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • MARIADB_10_4

      @Pro public static final SQLDialect MARIADB_10_4
      The MariaDB 10.4 dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • MARIADB_10_5

      @Pro public static final SQLDialect MARIADB_10_5
      The MariaDB 10.5 dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • MARIADB_10_6

      @Pro public static final SQLDialect MARIADB_10_6
      The MariaDB 10.6 dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • MYSQL

      public static final SQLDialect MYSQL
      The MySQL dialect family.

      This family behaves like the versioned dialect MYSQL_8_0_19.

    • MYSQL_5_6

      @Pro public static final SQLDialect MYSQL_5_6
      The MySQL 5.6 dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • MYSQL_5_7

      @Pro public static final SQLDialect MYSQL_5_7
      The MySQL 5.7 dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • MYSQL_8_0

      @Pro public static final SQLDialect MYSQL_8_0
      The MySQL 8.0.0 dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • MYSQL_8_0_19

      @Pro public static final SQLDialect MYSQL_8_0_19
      The MySQL 8.0.19 dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • POSTGRES

      public static final SQLDialect POSTGRES
      The PostgreSQL dialect family.

      This family behaves like the versioned dialect POSTGRES_13.

      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

      @Pro public static final SQLDialect 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

      @Pro public static final SQLDialect 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

      @Pro public static final SQLDialect 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

      @Pro public static final SQLDialect 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

      @Pro public static final SQLDialect 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

      @Pro public static final SQLDialect 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

      @Pro public static final SQLDialect 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

      @Pro public static final SQLDialect 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

      public static final SQLDialect SQLITE
      The SQLite dialect family.

      This family behaves like the versioned dialect SQLITE_3_30.

    • SQLITE_3_25

      @Pro public static final SQLDialect SQLITE_3_25
      The SQLite 3.25 dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • SQLITE_3_28

      @Pro public static final SQLDialect SQLITE_3_28
      The SQLite 3.28 dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • SQLITE_3_30

      @Pro public static final SQLDialect SQLITE_3_30
      The SQLite 3.30 dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • YUGABYTE

      public static final SQLDialect YUGABYTE
      The Yugabyte dialect family.
    • YUGABYTE_2_9

      @Pro public static final SQLDialect YUGABYTE_2_9
      The Yugabyte 2.9 dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • ACCESS

      @Pro public static final SQLDialect ACCESS
      The MS Access dialect family.

      This family behaves like the versioned dialect ACCESS2013.

      This dialect is available in commercial jOOQ distributions, only.

    • ACCESS2013

      @Pro public static final SQLDialect ACCESS2013
      The MS Access 2013 dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • ASE

      @Pro public static final SQLDialect 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

      @Pro public static final SQLDialect ASE_12_5
      The Sybase Adaptive Server 12.5 dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • ASE_15_5

      @Pro public static final SQLDialect ASE_15_5
      The Sybase Adaptive Server 15.5 dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • ASE_15_7

      @Pro public static final SQLDialect ASE_15_7
      The Sybase Adaptive Server 15.7 dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • ASE_16_0

      @Pro public static final SQLDialect ASE_16_0
      The Sybase Adaptive Server 16.0 dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • AURORA_MYSQL

      @Pro public static final SQLDialect AURORA_MYSQL
      The Amazon Aurora MySQL Edition dialect family.

      This dialect is available in commercial jOOQ distributions, only.

    • AURORA_POSTGRES

      @Pro public static final SQLDialect AURORA_POSTGRES
      The Amazon Aurora PostgreSQL Edition dialect family.

      This dialect is available in commercial jOOQ distributions, only.

    • BIGQUERY

      @Pro public static final SQLDialect BIGQUERY
      The Google BigQuery dialect family.

      This dialect is available in commercial jOOQ distributions, only.

    • COCKROACHDB

      @Pro public static final SQLDialect 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

      @Pro public static final SQLDialect COCKROACHDB_20
      The CockroachDB 20 dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • COCKROACHDB_21

      @Pro public static final SQLDialect COCKROACHDB_21
      The CockroachDB 21 dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • DB2

      @Pro public static final SQLDialect 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

      @Pro public static final SQLDialect DB2_9
      The IBM DB2 9.x dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • DB2_10

      @Pro public static final SQLDialect DB2_10
      The IBM DB2 10.x dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • DB2_11

      @Pro public static final SQLDialect DB2_11
      The IBM DB2 11.x dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • EXASOL

      @Pro public static final SQLDialect EXASOL
      The EXASOL dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • HANA

      @Pro public static final SQLDialect HANA
      The SAP HANA dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • INFORMIX

      @Pro public static final SQLDialect INFORMIX
      The Informix dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • INGRES

      @Pro @Deprecated(forRemoval=true, since="3.15") public static final SQLDialect 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/11515
      The Ingres dialect family.

      This dialect is available in commercial jOOQ distributions, only.

    • MEMSQL

      @Pro public static final SQLDialect MEMSQL
      The MemSQL dialect family.

      This dialect is available in commercial jOOQ distributions, only.

    • ORACLE

      @Pro public static final SQLDialect ORACLE
      The Oracle dialect family.

      This family behaves like the versioned dialect ORACLE20C.

      This dialect is available in commercial jOOQ distributions, only.

    • ORACLE10G

      @Pro @Deprecated(forRemoval=true, since="3.15") public static final SQLDialect 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/11797
      The Oracle 10g dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • ORACLE11G

      @Pro public static final SQLDialect ORACLE11G
      The Oracle 11g dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • ORACLE12C

      @Pro public static final SQLDialect ORACLE12C
      The Oracle 12c dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • ORACLE18C

      @Pro public static final SQLDialect ORACLE18C
      The Oracle 18c dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • ORACLE20C

      @Pro public static final SQLDialect ORACLE20C
      The Oracle 20c dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • ORACLE21C

      @Pro public static final SQLDialect ORACLE21C
      The Oracle 21c dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • POSTGRESPLUS

      @Deprecated @Pro public static final SQLDialect 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

      @Pro public static final SQLDialect REDSHIFT
      The Amazon Redshift dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • SNOWFLAKE

      @Pro public static final SQLDialect SNOWFLAKE
      The Snowflake dialect.

      This dialect is available in commercial jOOQ distributions, only.

    • SQLSERVER

      @Pro public static final SQLDialect 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

      @Pro public static final SQLDialect 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

      @Pro public static final SQLDialect 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

      @Pro public static final SQLDialect 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

      @Pro public static final SQLDialect 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

      @Pro public static final SQLDialect 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

      @Pro public static final SQLDialect SQLDATAWAREHOUSE
      The SQL Data Warehouse (Azure Synapse Analytics) family.

      This dialect is available in commercial jOOQ distributions, only.

    • SYBASE

      @Pro public static final SQLDialect SYBASE
      The Sybase SQL Anywhere dialect family.

      This dialect is available in commercial jOOQ distributions, only.

    • TERADATA

      @Pro public static final SQLDialect TERADATA
      The Teradata dialect family.

      This dialect is available in commercial jOOQ distributions, only.

    • VERTICA

      @Pro public static final SQLDialect VERTICA
      The Vertica dialect family.

      This dialect is available in commercial jOOQ distributions, only.

    • JAVA

      @Pro public static final SQLDialect 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.

  • Method Details

    • values

      public static SQLDialect[] 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

      public static SQLDialect valueOf(String name)
      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 name
      NullPointerException - if the argument is null
    • families

      @NotNull public static final @NotNull SQLDialect @NotNull [] families()
      Get a list of all family() values.
    • predecessors

      @NotNull public static final @NotNull Set<SQLDialect> predecessors(SQLDialect... dialects)
      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

      @NotNull public static final @NotNull Set<SQLDialect> supportedUntil(SQLDialect dialect)
      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

      @NotNull public static final @NotNull Set<SQLDialect> supportedUntil(SQLDialect... dialects)
      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

      @NotNull public static final @NotNull Set<SQLDialect> supportedBy(SQLDialect dialect)
      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

      @NotNull public static final @NotNull Set<SQLDialect> supportedBy(SQLDialect... dialects)
      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:

    • family

      @NotNull public final @NotNull SQLDialect 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 a family().
    • isVersioned

      public final boolean isVersioned()
      Whether this dialect is a versioned dialect or a family with versioned dialects.
    • predecessor

      @NotNull public final @NotNull SQLDialect 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

      @NotNull public final @NotNull Set<SQLDialect> predecessors()
      The predecessor dialects.

      Recursively calls predecessor() and finds all the preceding dialects to this one, including this one.

    • precedes

      public final boolean precedes(SQLDialect other)
      Whether this dialect precedes an other dialect from the same family.

      This returns:

      • true if this dialect is the same as the other dialect
      • true if this dialect precedes the other dialect via any number of calls to predecessor()
      The above also implies that:
      • 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

      public final boolean supports(SQLDialect other)
      Check whether this dialect supports another one.

      This is:

      • false if dialects don't belong to the same family
      • true if either dialect isFamily()
      • true if other dialect precedes this dialect

      The other argument dialect is typically referenced from a Support 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 - Use supportedBy(SQLDialect...) instead
      Check whether this dialect supports any dialect from the argument collection.
    • getName

      @NotNull public final @NotNull String getName()
      The name of this dialect as it appears in related class names.
    • getNameLC

      @NotNull public final @NotNull String getNameLC()
      The name of this dialect as it appears in related package names.
    • getNameUC

      @NotNull public final @NotNull String getNameUC()
      The name of this dialect as it appears in related enum values.
    • thirdParty

      @NotNull public final @NotNull SQLDialect.ThirdParty thirdParty()
      Get access to third party representations of this SQLDialect.