diff --git a/jOOQ-meta/src/main/java/org/jooq/util/Databases.java b/jOOQ-meta/src/main/java/org/jooq/util/Databases.java index b227aa4ee2..225ea5721f 100644 --- a/jOOQ-meta/src/main/java/org/jooq/util/Databases.java +++ b/jOOQ-meta/src/main/java/org/jooq/util/Databases.java @@ -103,6 +103,8 @@ public class Databases { case CUBRID: result = CUBRIDDatabase.class; break; case DERBY: result = DerbyDatabase.class; break; + case FIREBIRD_2_5: + case FIREBIRD_3_0: case FIREBIRD: result = FirebirdDatabase.class; break; case H2: result = H2Database.class; break; case HSQLDB: result = HSQLDBDatabase.class; break; diff --git a/jOOQ/src/main/java/org/jooq/impl/Ascii.java b/jOOQ/src/main/java/org/jooq/impl/Ascii.java index 6e1c6ad689..bc0b0d132e 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Ascii.java +++ b/jOOQ/src/main/java/org/jooq/impl/Ascii.java @@ -65,7 +65,7 @@ class Ascii extends AbstractFunction { @Override final Field getFunction0(Configuration configuration) { - switch (configuration.dialect()) { + switch (configuration.family()) { /* [pro] xx xxxx xxxxxxx xxxxxx xxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx xxxxxxxx diff --git a/jOOQ/src/main/java/org/jooq/impl/Degrees.java b/jOOQ/src/main/java/org/jooq/impl/Degrees.java index b51e72ccdd..c6f47d6b5f 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Degrees.java +++ b/jOOQ/src/main/java/org/jooq/impl/Degrees.java @@ -69,7 +69,7 @@ class Degrees extends AbstractFunction { @Override final Field getFunction0(Configuration configuration) { - switch (configuration.dialect().family()) { + switch (configuration.family()) { /* [pro] xx xxxx xxxxxxx xxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx diff --git a/jOOQ/src/main/java/org/jooq/impl/Greatest.java b/jOOQ/src/main/java/org/jooq/impl/Greatest.java index b86c999067..20e8e9ee4f 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Greatest.java +++ b/jOOQ/src/main/java/org/jooq/impl/Greatest.java @@ -69,7 +69,7 @@ class Greatest extends AbstractFunction { return (Field) getArguments()[0]; } - switch (configuration.dialect().family()) { + switch (configuration.family()) { // This implementation has O(2^n) complexity. Better implementations // are very welcome // [#1049] TODO Fix this! diff --git a/jOOQ/src/main/java/org/jooq/impl/InCondition.java b/jOOQ/src/main/java/org/jooq/impl/InCondition.java index e073a32fd8..7ed4adbb15 100644 --- a/jOOQ/src/main/java/org/jooq/impl/InCondition.java +++ b/jOOQ/src/main/java/org/jooq/impl/InCondition.java @@ -94,7 +94,7 @@ class InCondition extends AbstractCondition { else if (list.size() > IN_LIMIT) { // [#798] Oracle and some other dialects can only hold 1000 values // in an IN (...) clause - switch (ctx.configuration().dialect().family()) { + switch (ctx.family()) { /* [pro] xx xxxx xxxxxxx xxxx xxxxxxx diff --git a/jOOQ/src/main/java/org/jooq/impl/LTrim.java b/jOOQ/src/main/java/org/jooq/impl/LTrim.java index 59baa14572..8f48fb497e 100644 --- a/jOOQ/src/main/java/org/jooq/impl/LTrim.java +++ b/jOOQ/src/main/java/org/jooq/impl/LTrim.java @@ -66,7 +66,7 @@ class LTrim extends AbstractFunction { @Override final Field getFunction0(Configuration configuration) { - switch (configuration.dialect()) { + switch (configuration.family()) { case FIREBIRD: return field("{trim}({leading} {from} {0})", SQLDataType.VARCHAR, argument); diff --git a/jOOQ/src/main/java/org/jooq/impl/Least.java b/jOOQ/src/main/java/org/jooq/impl/Least.java index 16fae4bdb2..f80a97a8d4 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Least.java +++ b/jOOQ/src/main/java/org/jooq/impl/Least.java @@ -69,7 +69,7 @@ class Least extends AbstractFunction { return (Field) getArguments()[0]; } - switch (configuration.dialect().family()) { + switch (configuration.family()) { // This implementation has O(2^n) complexity. Better implementations // are very welcome diff --git a/jOOQ/src/main/java/org/jooq/impl/Limit.java b/jOOQ/src/main/java/org/jooq/impl/Limit.java index 34b227be20..311746ed36 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Limit.java +++ b/jOOQ/src/main/java/org/jooq/impl/Limit.java @@ -168,7 +168,9 @@ class Limit extends AbstractQueryPart { // ROWS .. TO .. // ------------- - case FIREBIRD: { + case FIREBIRD: + case FIREBIRD_2_5: + case FIREBIRD_3_0: { context.castMode(NEVER) .formatSeparator() .keyword("rows") diff --git a/jOOQ/src/main/java/org/jooq/impl/Lpad.java b/jOOQ/src/main/java/org/jooq/impl/Lpad.java index c691c0f64f..5a652564f9 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Lpad.java +++ b/jOOQ/src/main/java/org/jooq/impl/Lpad.java @@ -75,7 +75,7 @@ class Lpad extends AbstractFunction { @Override final Field getFunction0(Configuration configuration) { - switch (configuration.dialect().family()) { + switch (configuration.family()) { /* [pro] xx xxxx xxxxxxx x xxxxxx xxxxxxxxxxxxxxxxxxxxxxxx x xxxxxxxxxx x xx xxxx x xxxxx xxxxxxxxxxxxxxxxxxxx xxxxxx xxxxxxx xxxxxxxxxxx diff --git a/jOOQ/src/main/java/org/jooq/impl/RTrim.java b/jOOQ/src/main/java/org/jooq/impl/RTrim.java index 90f290d7c1..d878a5f264 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RTrim.java +++ b/jOOQ/src/main/java/org/jooq/impl/RTrim.java @@ -66,7 +66,7 @@ class RTrim extends AbstractFunction { @Override final Field getFunction0(Configuration configuration) { - switch (configuration.dialect()) { + switch (configuration.family()) { case FIREBIRD: return field("{trim}({trailing} {from} {0})", SQLDataType.VARCHAR, argument); diff --git a/jOOQ/src/main/java/org/jooq/impl/Radians.java b/jOOQ/src/main/java/org/jooq/impl/Radians.java index edede186c9..10857c1e17 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Radians.java +++ b/jOOQ/src/main/java/org/jooq/impl/Radians.java @@ -69,7 +69,7 @@ class Radians extends AbstractFunction { @Override final Field getFunction0(Configuration configuration) { - switch (configuration.dialect().family()) { + switch (configuration.family()) { /* [pro] xx xxxx xxxxxxx xxxx xxxxx diff --git a/jOOQ/src/main/java/org/jooq/impl/Repeat.java b/jOOQ/src/main/java/org/jooq/impl/Repeat.java index 8a60bae6c7..a31e910120 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Repeat.java +++ b/jOOQ/src/main/java/org/jooq/impl/Repeat.java @@ -67,7 +67,7 @@ class Repeat extends AbstractFunction { @Override final Field getFunction0(Configuration configuration) { - switch (configuration.dialect().family()) { + switch (configuration.family()) { /* [pro] xx xxxx xxxxx xxxx xxxxxxxxx diff --git a/jOOQ/src/main/java/org/jooq/impl/RowInCondition.java b/jOOQ/src/main/java/org/jooq/impl/RowInCondition.java index fa34ac8659..2504edec40 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowInCondition.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowInCondition.java @@ -104,7 +104,7 @@ class RowInCondition extends AbstractCondition { } private final QueryPartInternal delegate(Configuration configuration) { - if (asList(DERBY, FIREBIRD, SQLITE).contains(configuration.dialect().family())) { + if (asList(DERBY, FIREBIRD, SQLITE).contains(configuration.family())) { List conditions = new ArrayList(); for (Row row : right) { diff --git a/jOOQ/src/main/java/org/jooq/impl/RowIsNull.java b/jOOQ/src/main/java/org/jooq/impl/RowIsNull.java index 27708dc347..fa17365e4d 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowIsNull.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowIsNull.java @@ -106,7 +106,7 @@ class RowIsNull extends AbstractCondition { // CUBRID 9.0.0 and HSQLDB have buggy implementations of the NULL predicate. // Informix doesn't implement the RVE IS NULL predicate. - if (asList(CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, SQLITE).contains(configuration.dialect().family())) { + if (asList(CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, SQLITE).contains(configuration.family())) { List conditions = new ArrayList(); for (Field field : row.fields()) { diff --git a/jOOQ/src/main/java/org/jooq/impl/RowOverlapsCondition.java b/jOOQ/src/main/java/org/jooq/impl/RowOverlapsCondition.java index e974ab7dcd..afd0843803 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowOverlapsCondition.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowOverlapsCondition.java @@ -113,7 +113,7 @@ class RowOverlapsCondition extends AbstractCondition { boolean intervalOverlaps = type0.isDateTime() && (type1.isInterval() || type1.isNumeric()); // The non-standard OVERLAPS predicate is always emulated - if (!standardOverlaps || asList(CUBRID, DERBY, FIREBIRD, H2, MARIADB, MYSQL, SQLITE).contains(configuration.dialect().family())) { + if (!standardOverlaps || asList(CUBRID, DERBY, FIREBIRD, H2, MARIADB, MYSQL, SQLITE).contains(configuration.family())) { // Interval OVERLAPS predicates need some additional arithmetic if (intervalOverlaps) { diff --git a/jOOQ/src/main/java/org/jooq/impl/Rpad.java b/jOOQ/src/main/java/org/jooq/impl/Rpad.java index a481da70dd..cc3e5abee4 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Rpad.java +++ b/jOOQ/src/main/java/org/jooq/impl/Rpad.java @@ -75,7 +75,7 @@ class Rpad extends AbstractFunction { @Override final Field getFunction0(Configuration configuration) { - switch (configuration.dialect().family()) { + switch (configuration.family()) { /* [pro] xx xxxx xxxxxxx x xxxxxx xxxxxxxxxx x xxxxxxxxxxxxxxxxx x xxxxxxxxxx x xx xxxxxx xxxxxxxxxxxxxxxxxxxx xxxxxx xxxxxxx xxxxxxxxxxx diff --git a/jOOQ/src/main/java/org/jooq/impl/Substring.java b/jOOQ/src/main/java/org/jooq/impl/Substring.java index 3435378240..cd17d6cbe0 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Substring.java +++ b/jOOQ/src/main/java/org/jooq/impl/Substring.java @@ -65,7 +65,7 @@ class Substring extends AbstractFunction { final Field getFunction0(Configuration configuration) { String functionName = "substring"; - switch (configuration.dialect().family()) { + switch (configuration.family()) { // [#430] Firebird has its own syntax case FIREBIRD: { diff --git a/jOOQ/src/main/java/org/jooq/impl/TruncateImpl.java b/jOOQ/src/main/java/org/jooq/impl/TruncateImpl.java index bc19df3e0e..a2d50d1df5 100644 --- a/jOOQ/src/main/java/org/jooq/impl/TruncateImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/TruncateImpl.java @@ -103,7 +103,7 @@ class TruncateImpl extends AbstractQuery implements @Override public final void accept(Context ctx) { - switch (ctx.configuration().dialect().family()) { + switch (ctx.family()) { // These dialects don't implement the TRUNCATE statement /* [pro] xx