Enum SqlDialect.DatabaseProduct
- java.lang.Object
-
- java.lang.Enum<SqlDialect.DatabaseProduct>
-
- org.apache.calcite.sql.SqlDialect.DatabaseProduct
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Comparable<SqlDialect.DatabaseProduct>
- Enclosing class:
- SqlDialect
public static enum SqlDialect.DatabaseProduct extends java.lang.Enum<SqlDialect.DatabaseProduct>
Rough list of flavors of database.These values cannot help you distinguish between features that exist in different versions or ports of a database, but they are sufficient to drive a
switch
statement if behavior is broadly different between say, MySQL and Oracle.If possible, you should not refer to particular database at all; write extend the dialect to describe the particular capability, for example, whether the database allows expressions to appear in the GROUP BY clause.
-
-
Enum Constant Summary
Enum Constants Enum Constant Description ACCESS
BIG_QUERY
CALCITE
DB2
DERBY
FIREBIRD
H2
HIVE
HSQLDB
INFOBRIGHT
INFORMIX
INGRES
INTERBASE
JETHRO
LUCIDDB
MSSQL
MYSQL
NEOVIEW
NETEZZA
ORACLE
PARACCEL
Paraccel, now called Actian Matrix.PHOENIX
POSTGRESQL
REDSHIFT
SQLSTREAM
SYBASE
TERADATA
UNKNOWN
Placeholder for the unknown database.VERTICA
-
Field Summary
Fields Modifier and Type Field Description private java.util.function.Supplier<SqlDialect>
dialect
-
Constructor Summary
Constructors Modifier Constructor Description private
DatabaseProduct(java.lang.String databaseProductName, java.lang.String quoteString, NullCollation nullCollation)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description SqlDialect
getDialect()
Returns a dummy dialect for this database.static SqlDialect.DatabaseProduct
valueOf(java.lang.String name)
Returns the enum constant of this type with the specified name.static SqlDialect.DatabaseProduct[]
values()
Returns an array containing the constants of this enum type, in the order they are declared.
-
-
-
Enum Constant Detail
-
ACCESS
public static final SqlDialect.DatabaseProduct ACCESS
-
BIG_QUERY
public static final SqlDialect.DatabaseProduct BIG_QUERY
-
CALCITE
public static final SqlDialect.DatabaseProduct CALCITE
-
MSSQL
public static final SqlDialect.DatabaseProduct MSSQL
-
MYSQL
public static final SqlDialect.DatabaseProduct MYSQL
-
ORACLE
public static final SqlDialect.DatabaseProduct ORACLE
-
DERBY
public static final SqlDialect.DatabaseProduct DERBY
-
DB2
public static final SqlDialect.DatabaseProduct DB2
-
FIREBIRD
public static final SqlDialect.DatabaseProduct FIREBIRD
-
H2
public static final SqlDialect.DatabaseProduct H2
-
HIVE
public static final SqlDialect.DatabaseProduct HIVE
-
INFORMIX
public static final SqlDialect.DatabaseProduct INFORMIX
-
INGRES
public static final SqlDialect.DatabaseProduct INGRES
-
JETHRO
public static final SqlDialect.DatabaseProduct JETHRO
-
LUCIDDB
public static final SqlDialect.DatabaseProduct LUCIDDB
-
INTERBASE
public static final SqlDialect.DatabaseProduct INTERBASE
-
PHOENIX
public static final SqlDialect.DatabaseProduct PHOENIX
-
POSTGRESQL
public static final SqlDialect.DatabaseProduct POSTGRESQL
-
NETEZZA
public static final SqlDialect.DatabaseProduct NETEZZA
-
INFOBRIGHT
public static final SqlDialect.DatabaseProduct INFOBRIGHT
-
NEOVIEW
public static final SqlDialect.DatabaseProduct NEOVIEW
-
SYBASE
public static final SqlDialect.DatabaseProduct SYBASE
-
TERADATA
public static final SqlDialect.DatabaseProduct TERADATA
-
HSQLDB
public static final SqlDialect.DatabaseProduct HSQLDB
-
VERTICA
public static final SqlDialect.DatabaseProduct VERTICA
-
SQLSTREAM
public static final SqlDialect.DatabaseProduct SQLSTREAM
-
PARACCEL
public static final SqlDialect.DatabaseProduct PARACCEL
Paraccel, now called Actian Matrix. Redshift is based on this, so presumably the dialect capabilities are similar.
-
REDSHIFT
public static final SqlDialect.DatabaseProduct REDSHIFT
-
UNKNOWN
public static final SqlDialect.DatabaseProduct UNKNOWN
Placeholder for the unknown database.Its dialect is useful for generating generic SQL. If you need to do something database-specific like quoting identifiers, don't rely on this dialect to do what you want.
-
-
Field Detail
-
dialect
private final java.util.function.Supplier<SqlDialect> dialect
-
-
Constructor Detail
-
DatabaseProduct
private DatabaseProduct(java.lang.String databaseProductName, java.lang.String quoteString, NullCollation nullCollation)
-
-
Method Detail
-
values
public static SqlDialect.DatabaseProduct[] 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.DatabaseProduct c : SqlDialect.DatabaseProduct.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.DatabaseProduct valueOf(java.lang.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:
java.lang.IllegalArgumentException
- if this enum type has no constant with the specified namejava.lang.NullPointerException
- if the argument is null
-
getDialect
public SqlDialect getDialect()
Returns a dummy dialect for this database.Since databases have many versions and flavors, this dummy dialect is at best an approximation. If you want exact information, better to use a dialect created from an actual connection's metadata (see
SqlDialectFactory.create(java.sql.DatabaseMetaData)
).- Returns:
- Dialect representing lowest-common-denominator behavior for all versions of this database
-
-