Module org.jooq
Package org.jooq

Enum SQLDialect

  • All Implemented Interfaces:
    Serializable, Comparable<SQLDialect>

    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 SQL Server dialect family POSTGRES is specialised by its dialects

    Author:
    Lukas Eder
    • Enum Constant Detail

      • SQL99

        @Deprecated
        public static final SQLDialect SQL99
        Deprecated.
        - [#3844] - 3.6.0 - DEFAULT will replace this pseudo-dialect.
        The standard SQL dialect family.
      • 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

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

      • H2

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

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

        public static final SQLDialect MARIADB
        The MariaDB dialect family.
      • MYSQL

        public static final SQLDialect MYSQL
        The MySQL dialect family.

        This family behaves like the versioned dialect MYSQL_8_0.

      • 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 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_11.

        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.

      • SQLITE

        public static final SQLDialect SQLITE
        The SQLite dialect family.

        This family behaves like the versioned dialect SQLITE_3_28.

      • 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.

      • 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 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.

      • 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.

      • 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
        public static final SQLDialect INGRES
        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 ORACLE18C.

        This dialect is available in commercial jOOQ distributions, only.

      • ORACLE10G

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

      • 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.

      • 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 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.

    • Method Detail

      • values

        public static SQLDialect[] values()
        Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
        for (SQLDialect c : SQLDialect.values())
            System.out.println(c);
        
        Returns:
        an array containing the constants of this enum type, in the order they are declared
      • valueOf

        public static SQLDialect valueOf​(String name)
        Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (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 type has no constant with the specified name
        NullPointerException - if the argument is null
      • 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

        public final 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().
      • predecessor

        public final 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.

      • 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

        public final boolean supports​(Collection<SQLDialect> other)
        Check whether this dialect supports any dialect from the argument collection.
      • getName

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

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

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

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