diff --git a/jOOQ-codegen/src/main/java/org/jooq/util/GenerationUtil.java b/jOOQ-codegen/src/main/java/org/jooq/util/GenerationUtil.java index 39093a9435..e2e7bf35a1 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/util/GenerationUtil.java +++ b/jOOQ-codegen/src/main/java/org/jooq/util/GenerationUtil.java @@ -171,7 +171,7 @@ class GenerationUtil { * Gets the base type for an array type, depending on the RDBMS dialect */ static String getArrayBaseType(SQLDialect dialect, String t, String u) { - switch (dialect) { + switch (dialect.family()) { case POSTGRES: { // The convention is to prepend a "_" to a type to get an array type diff --git a/jOOQ-meta/src/main/java/org/jooq/util/AbstractDatabase.java b/jOOQ-meta/src/main/java/org/jooq/util/AbstractDatabase.java index cfa3f42a36..f339f2b62e 100644 --- a/jOOQ-meta/src/main/java/org/jooq/util/AbstractDatabase.java +++ b/jOOQ-meta/src/main/java/org/jooq/util/AbstractDatabase.java @@ -1078,7 +1078,7 @@ public abstract class AbstractDatabase implements Database { @Override public final boolean isArrayType(String dataType) { - switch (getDialect()) { + switch (getDialect().family()) { case POSTGRES: case H2: return "ARRAY".equals(dataType); diff --git a/jOOQ/src/main/java/org/jooq/SQLDialect.java b/jOOQ/src/main/java/org/jooq/SQLDialect.java index 24525ba702..5a04dd5ff6 100644 --- a/jOOQ/src/main/java/org/jooq/SQLDialect.java +++ b/jOOQ/src/main/java/org/jooq/SQLDialect.java @@ -48,11 +48,11 @@ import java.util.Set; * Dialects and dialect families as supported by jOOQ. *

* jOOQ supports a variety of dialects, which are grouped into dialect families. - * For instance, the SQL Server dialect family {@link #SQLSERVER} is specialised + * For instance, the SQL Server dialect family {@link #POSTGRES} is specialised * by its dialects *

* * @author Lukas Eder diff --git a/jOOQ/src/main/java/org/jooq/Support.java b/jOOQ/src/main/java/org/jooq/Support.java index a1db8eaf5d..7edfd5c613 100644 --- a/jOOQ/src/main/java/org/jooq/Support.java +++ b/jOOQ/src/main/java/org/jooq/Support.java @@ -69,7 +69,21 @@ import org.jooq.exception.SQLDialectNotSupportedException; * annotated in such a way should be used only along with any of the dialects * specified by the annotation. This is typically the case with jOOQ's SQL * construction API for less common clauses, such as the creation of - * MERGE, etc. + * MERGE, etc. + *

+ * There listed dialects can be either a: + *

+ * * *

* Future versions of jOOQ may use these annotations for throwing diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java b/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java index 355d0e77d4..a3c7ee9e01 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java @@ -468,7 +468,7 @@ public abstract class AbstractRoutine extends AbstractQueryPart implements Ro Field value = getInValues().get(parameter); // Disambiguate overloaded procedure signatures - if (POSTGRES == context.configuration().dialect() && isOverloaded()) { + if (POSTGRES == context.family() && isOverloaded()) { value = value.cast(parameter.getType()); } @@ -864,7 +864,7 @@ public abstract class AbstractRoutine extends AbstractQueryPart implements Ro for (Parameter p : getInParameters()) { // Disambiguate overloaded function signatures - if (POSTGRES == ctx.dialect() && isOverloaded()) { + if (POSTGRES == ctx.family() && isOverloaded()) { array[i] = getInValues().get(p).cast(p.getType()); } else { diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractStoreQuery.java b/jOOQ/src/main/java/org/jooq/impl/AbstractStoreQuery.java index 93d9a4f194..45fea0fc53 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractStoreQuery.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractStoreQuery.java @@ -210,7 +210,7 @@ abstract class AbstractStoreQuery extends AbstractQuery implem final void toSQLReturning(Context ctx) { if (!returning.isEmpty()) { - switch (ctx.configuration().dialect()) { + switch (ctx.family()) { case FIREBIRD: case POSTGRES: ctx.formatSeparator() @@ -247,7 +247,7 @@ abstract class AbstractStoreQuery extends AbstractQuery implem // Values should be returned from the INSERT else { - switch (ctx.configuration().dialect().family()) { + switch (ctx.family()) { /* [pro] xx xxxx xxxxxxx @@ -322,7 +322,7 @@ abstract class AbstractStoreQuery extends AbstractQuery implem else { int result = 1; ResultSet rs; - switch (ctx.configuration().dialect().family()) { + switch (ctx.family()) { // SQLite can select _rowid_ after the insert case SQLITE: { diff --git a/jOOQ/src/main/java/org/jooq/impl/Alias.java b/jOOQ/src/main/java/org/jooq/impl/Alias.java index 35841fd5c0..7184466811 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Alias.java +++ b/jOOQ/src/main/java/org/jooq/impl/Alias.java @@ -121,14 +121,14 @@ class Alias extends AbstractQueryPart { @Override public final void accept(Context context) { if (context.declareFields() || context.declareTables()) { - SQLDialect dialect = context.configuration().dialect(); + SQLDialect family = context.family(); boolean simulateDerivedColumnList = false; // [#454] [#1801] Some databases don't allow "derived column names" in // "simple class specifications", or "common table expression references". // Hence, wrap the table reference in a subselect if (fieldAliases != null - && asList(CUBRID, FIREBIRD).contains(dialect.family()) + && asList(CUBRID, FIREBIRD).contains(family) && (wrapped instanceof TableImpl || wrapped instanceof CommonTableExpressionImpl)) { @SuppressWarnings("unchecked") @@ -143,13 +143,13 @@ class Alias extends AbstractQueryPart { // [#1801] Some databases do not support "derived column names". // They can be simulated by concatenating a dummy SELECT with no // results using UNION ALL - else if (fieldAliases != null && asList(H2, MARIADB, MYSQL, SQLITE).contains(dialect.family())) { + else if (fieldAliases != null && asList(H2, MARIADB, MYSQL, SQLITE).contains(family)) { simulateDerivedColumnList = true; SelectFieldList fields = new SelectFieldList(); for (String fieldAlias : fieldAliases) { - switch (dialect.family()) { + switch (family) { /* [pro] xx xxxx xxxxxxx x @@ -209,7 +209,7 @@ class Alias extends AbstractQueryPart { // SELECT t.column_value FROM UNNEST(ARRAY[1, 2]) AS t(column_value) // TODO: Is this still needed? - switch (dialect) { + switch (family) { case HSQLDB: case POSTGRES: { // The javac compiler doesn't like casting of generics @@ -241,7 +241,7 @@ class Alias extends AbstractQueryPart { } static void toSQLAs(Context context) { - if (asList(DERBY, HSQLDB, MARIADB, MYSQL, POSTGRES).contains(context.configuration().dialect())) { + if (asList(DERBY, HSQLDB, MARIADB, MYSQL, POSTGRES).contains(context.family())) { context.sql(" ").keyword("as"); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/ArrayDataType.java b/jOOQ/src/main/java/org/jooq/impl/ArrayDataType.java index 3b8f9b3ed0..4847923c90 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ArrayDataType.java +++ b/jOOQ/src/main/java/org/jooq/impl/ArrayDataType.java @@ -76,7 +76,7 @@ class ArrayDataType extends DefaultDataType { } private static String getArrayType(Configuration configuration, String dataType) { - switch (configuration.dialect()) { + switch (configuration.family()) { case HSQLDB: return dataType + " array"; case POSTGRES: diff --git a/jOOQ/src/main/java/org/jooq/impl/ArrayTable.java b/jOOQ/src/main/java/org/jooq/impl/ArrayTable.java index 9cabc814f7..7d31033ecb 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ArrayTable.java +++ b/jOOQ/src/main/java/org/jooq/impl/ArrayTable.java @@ -174,7 +174,7 @@ class ArrayTable extends AbstractTable { } private final Table table(Configuration configuration) { - switch (configuration.dialect().family()) { + switch (configuration.family()) { /* [pro] xx xxxx xxxxxxx x xx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x diff --git a/jOOQ/src/main/java/org/jooq/impl/CompareCondition.java b/jOOQ/src/main/java/org/jooq/impl/CompareCondition.java index 72d9637bec..349fb08f81 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CompareCondition.java +++ b/jOOQ/src/main/java/org/jooq/impl/CompareCondition.java @@ -86,7 +86,7 @@ class CompareCondition extends AbstractCondition { @Override public final void accept(Context ctx) { - SQLDialect family = ctx.configuration().dialect().family(); + SQLDialect family = ctx.family(); Field lhs = field1; Field rhs = field2; Comparator op = comparator; diff --git a/jOOQ/src/main/java/org/jooq/impl/ConditionAsField.java b/jOOQ/src/main/java/org/jooq/impl/ConditionAsField.java index a09799eb1a..4c26d5e0d5 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ConditionAsField.java +++ b/jOOQ/src/main/java/org/jooq/impl/ConditionAsField.java @@ -66,7 +66,7 @@ class ConditionAsField extends AbstractFunction { @Override final QueryPart getFunction0(Configuration configuration) { - switch (configuration.dialect().family()) { + switch (configuration.family()) { // Some databases don't accept predicates where column expressions // are expected. diff --git a/jOOQ/src/main/java/org/jooq/impl/Cosh.java b/jOOQ/src/main/java/org/jooq/impl/Cosh.java index 297b4f1c55..d5fcfd192b 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Cosh.java +++ b/jOOQ/src/main/java/org/jooq/impl/Cosh.java @@ -69,7 +69,7 @@ class Cosh extends AbstractFunction { @Override final Field getFunction0(Configuration configuration) { - switch (configuration.dialect().family()) { + switch (configuration.family()) { /* [pro] xx xxxx xxxxxxx xxxx xxxx diff --git a/jOOQ/src/main/java/org/jooq/impl/CurrentDate.java b/jOOQ/src/main/java/org/jooq/impl/CurrentDate.java index 6402fd0a1f..f8f43c804d 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CurrentDate.java +++ b/jOOQ/src/main/java/org/jooq/impl/CurrentDate.java @@ -64,7 +64,7 @@ class CurrentDate extends AbstractFunction { @Override final Field getFunction0(Configuration configuration) { - switch (configuration.dialect().family()) { + switch (configuration.family()) { /* [pro] xx xxxx xxxxxxx xxxxxx xxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxx diff --git a/jOOQ/src/main/java/org/jooq/impl/CurrentTime.java b/jOOQ/src/main/java/org/jooq/impl/CurrentTime.java index 9f6bc0b2f9..66bd89c92a 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CurrentTime.java +++ b/jOOQ/src/main/java/org/jooq/impl/CurrentTime.java @@ -64,7 +64,7 @@ class CurrentTime extends AbstractFunction