[jOOQ/jOOQ#12604] Add SQLDialect.FIREBIRD_4_0

- Added dialect and updated tests
- Support LATERAL and APPLY
- Support WINDOW clause
- Support window frames
- Support new window functions
This commit is contained in:
Lukas Eder 2021-11-04 15:00:21 +01:00
parent 15b52ffafb
commit e3854f0223
15 changed files with 141 additions and 168 deletions

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.CUBRID;
import static org.jooq.SQLDialect.DERBY;
// ...
import static org.jooq.SQLDialect.FIREBIRD;
// ...
import static org.jooq.SQLDialect.H2;
// ...
import static org.jooq.SQLDialect.HSQLDB;
@ -150,14 +151,14 @@ public enum JoinType {
* <code>CROSS APPLY</code> two tables.
*/
@NotNull
@Support({ POSTGRES, YUGABYTE })
@Support({ FIREBIRD, POSTGRES, YUGABYTE })
CROSS_APPLY("cross apply", false),
/**
* <code>OUTER APPLY</code> two tables.
*/
@NotNull
@Support({ POSTGRES, YUGABYTE })
@Support({ FIREBIRD, POSTGRES, YUGABYTE })
OUTER_APPLY("outer apply", false),
/**

View File

@ -125,6 +125,14 @@ public enum SQLDialect {

View File

@ -48,6 +48,7 @@ import static org.jooq.SQLDialect.CUBRID;
import static org.jooq.SQLDialect.DERBY;
// ...
import static org.jooq.SQLDialect.FIREBIRD;
// ...
import static org.jooq.SQLDialect.H2;
// ...
import static org.jooq.SQLDialect.HSQLDB;
@ -1727,7 +1728,7 @@ public interface SelectJoinStep<R extends Record> extends SelectWhereStep<R> {
* @see Table#crossApply(TableLike)
*/
@NotNull @CheckReturnValue
@Support({ POSTGRES, YUGABYTE })
@Support({ FIREBIRD, POSTGRES, YUGABYTE })
SelectJoinStep<R> crossApply(TableLike<?> table);
/**
@ -1743,7 +1744,7 @@ public interface SelectJoinStep<R extends Record> extends SelectWhereStep<R> {
* @see SQL
*/
@NotNull @CheckReturnValue
@Support({ POSTGRES, YUGABYTE })
@Support({ FIREBIRD, POSTGRES, YUGABYTE })
@PlainSQL
SelectJoinStep<R> crossApply(SQL sql);
@ -1760,7 +1761,7 @@ public interface SelectJoinStep<R extends Record> extends SelectWhereStep<R> {
* @see SQL
*/
@NotNull @CheckReturnValue
@Support({ POSTGRES, YUGABYTE })
@Support({ FIREBIRD, POSTGRES, YUGABYTE })
@PlainSQL
SelectJoinStep<R> crossApply(String sql);
@ -1778,7 +1779,7 @@ public interface SelectJoinStep<R extends Record> extends SelectWhereStep<R> {
* @see SQL
*/
@NotNull @CheckReturnValue
@Support({ POSTGRES, YUGABYTE })
@Support({ FIREBIRD, POSTGRES, YUGABYTE })
@PlainSQL
SelectJoinStep<R> crossApply(String sql, Object... bindings);
@ -1796,7 +1797,7 @@ public interface SelectJoinStep<R extends Record> extends SelectWhereStep<R> {
* @see SQL
*/
@NotNull @CheckReturnValue
@Support({ POSTGRES, YUGABYTE })
@Support({ FIREBIRD, POSTGRES, YUGABYTE })
@PlainSQL
SelectJoinStep<R> crossApply(String sql, QueryPart... parts);
@ -1807,7 +1808,7 @@ public interface SelectJoinStep<R extends Record> extends SelectWhereStep<R> {
* @see Table#crossApply(Name)
*/
@NotNull @CheckReturnValue
@Support({ POSTGRES, YUGABYTE })
@Support({ FIREBIRD, POSTGRES, YUGABYTE })
SelectJoinStep<R> crossApply(Name name);
/**
@ -1816,7 +1817,7 @@ public interface SelectJoinStep<R extends Record> extends SelectWhereStep<R> {
* @see Table#outerApply(TableLike)
*/
@NotNull @CheckReturnValue
@Support({ POSTGRES, YUGABYTE })
@Support({ FIREBIRD, POSTGRES, YUGABYTE })
SelectJoinStep<R> outerApply(TableLike<?> table);
/**
@ -1832,7 +1833,7 @@ public interface SelectJoinStep<R extends Record> extends SelectWhereStep<R> {
* @see SQL
*/
@NotNull @CheckReturnValue
@Support({ POSTGRES, YUGABYTE })
@Support({ FIREBIRD, POSTGRES, YUGABYTE })
@PlainSQL
SelectJoinStep<R> outerApply(SQL sql);
@ -1849,7 +1850,7 @@ public interface SelectJoinStep<R extends Record> extends SelectWhereStep<R> {
* @see SQL
*/
@NotNull @CheckReturnValue
@Support({ POSTGRES, YUGABYTE })
@Support({ FIREBIRD, POSTGRES, YUGABYTE })
@PlainSQL
SelectJoinStep<R> outerApply(String sql);
@ -1867,7 +1868,7 @@ public interface SelectJoinStep<R extends Record> extends SelectWhereStep<R> {
* @see SQL
*/
@NotNull @CheckReturnValue
@Support({ POSTGRES, YUGABYTE })
@Support({ FIREBIRD, POSTGRES, YUGABYTE })
@PlainSQL
SelectJoinStep<R> outerApply(String sql, Object... bindings);
@ -1885,7 +1886,7 @@ public interface SelectJoinStep<R extends Record> extends SelectWhereStep<R> {
* @see SQL
*/
@NotNull @CheckReturnValue
@Support({ POSTGRES, YUGABYTE })
@Support({ FIREBIRD, POSTGRES, YUGABYTE })
@PlainSQL
SelectJoinStep<R> outerApply(String sql, QueryPart... parts);
@ -1896,7 +1897,7 @@ public interface SelectJoinStep<R extends Record> extends SelectWhereStep<R> {
* @see Table#outerApply(Name)
*/
@NotNull @CheckReturnValue
@Support({ POSTGRES, YUGABYTE })
@Support({ FIREBIRD, POSTGRES, YUGABYTE })
SelectJoinStep<R> outerApply(Name name);
/**

View File

@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.CUBRID;
import static org.jooq.SQLDialect.DERBY;
// ...
import static org.jooq.SQLDialect.FIREBIRD;
// ...
import static org.jooq.SQLDialect.H2;
// ...
import static org.jooq.SQLDialect.HSQLDB;
@ -2153,7 +2154,7 @@ extends
* <code>CROSS APPLY</code> a table to this table.
*/
@NotNull
@Support({ POSTGRES, YUGABYTE })
@Support({ FIREBIRD, POSTGRES, YUGABYTE })
Table<Record> crossApply(TableLike<?> table);
/**
@ -2168,7 +2169,7 @@ extends
* @see SQL
*/
@NotNull
@Support({ POSTGRES, YUGABYTE })
@Support({ FIREBIRD, POSTGRES, YUGABYTE })
@PlainSQL
Table<Record> crossApply(SQL sql);
@ -2184,7 +2185,7 @@ extends
* @see SQL
*/
@NotNull
@Support({ POSTGRES, YUGABYTE })
@Support({ FIREBIRD, POSTGRES, YUGABYTE })
@PlainSQL
Table<Record> crossApply(String sql);
@ -2201,7 +2202,7 @@ extends
* @see SQL
*/
@NotNull
@Support({ POSTGRES, YUGABYTE })
@Support({ FIREBIRD, POSTGRES, YUGABYTE })
@PlainSQL
Table<Record> crossApply(String sql, Object... bindings);
@ -2218,7 +2219,7 @@ extends
* @see SQL
*/
@NotNull
@Support({ POSTGRES, YUGABYTE })
@Support({ FIREBIRD, POSTGRES, YUGABYTE })
@PlainSQL
Table<Record> crossApply(String sql, QueryPart... parts);
@ -2228,14 +2229,14 @@ extends
* @see DSL#table(Name)
*/
@NotNull
@Support({ POSTGRES, YUGABYTE })
@Support({ FIREBIRD, POSTGRES, YUGABYTE })
Table<Record> crossApply(Name name);
/**
* <code>OUTER APPLY</code> a table to this table.
*/
@NotNull
@Support({ POSTGRES, YUGABYTE })
@Support({ FIREBIRD, POSTGRES, YUGABYTE })
Table<Record> outerApply(TableLike<?> table);
/**
@ -2250,7 +2251,7 @@ extends
* @see SQL
*/
@NotNull
@Support({ POSTGRES, YUGABYTE })
@Support({ FIREBIRD, POSTGRES, YUGABYTE })
@PlainSQL
Table<Record> outerApply(SQL sql);
@ -2266,7 +2267,7 @@ extends
* @see SQL
*/
@NotNull
@Support({ POSTGRES, YUGABYTE })
@Support({ FIREBIRD, POSTGRES, YUGABYTE })
@PlainSQL
Table<Record> outerApply(String sql);
@ -2283,7 +2284,7 @@ extends
* @see SQL
*/
@NotNull
@Support({ POSTGRES, YUGABYTE })
@Support({ FIREBIRD, POSTGRES, YUGABYTE })
@PlainSQL
Table<Record> outerApply(String sql, Object... bindings);
@ -2300,7 +2301,7 @@ extends
* @see SQL
*/
@NotNull
@Support({ POSTGRES, YUGABYTE })
@Support({ FIREBIRD, POSTGRES, YUGABYTE })
@PlainSQL
Table<Record> outerApply(String sql, QueryPart... parts);
@ -2310,7 +2311,7 @@ extends
* @see DSL#table(Name)
*/
@NotNull
@Support({ POSTGRES, YUGABYTE })
@Support({ FIREBIRD, POSTGRES, YUGABYTE })
Table<Record> outerApply(Name name);
/**
@ -2446,7 +2447,7 @@ extends
* <code><pre>
* -- Emulating this MySQL statement...
* DELETE FROM x ORDER BY x.y LIMIT 1
*
*
* -- ... in other databases
* DELETE FROM x
* WHERE x.rowid IN (

View File

@ -42,6 +42,7 @@ package org.jooq;
// ...
// ...
// ...
import static org.jooq.SQLDialect.FIREBIRD;
import static org.jooq.SQLDialect.H2;
// ...
import static org.jooq.SQLDialect.MARIADB;
@ -87,7 +88,7 @@ public interface WindowRowsStep<T> extends WindowFinalStep<T> {
* function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowExcludeStep<T> rowsUnboundedPreceding();
/**
@ -95,14 +96,14 @@ public interface WindowRowsStep<T> extends WindowFinalStep<T> {
* function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowExcludeStep<T> rowsPreceding(int number);
/**
* Add a <code>ROWS CURRENT ROW</code> frame clause to the window function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowExcludeStep<T> rowsCurrentRow();
/**
@ -110,7 +111,7 @@ public interface WindowRowsStep<T> extends WindowFinalStep<T> {
* function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowExcludeStep<T> rowsUnboundedFollowing();
/**
@ -118,7 +119,7 @@ public interface WindowRowsStep<T> extends WindowFinalStep<T> {
* function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowExcludeStep<T> rowsFollowing(int number);
/**
@ -126,7 +127,7 @@ public interface WindowRowsStep<T> extends WindowFinalStep<T> {
* the window function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowRowsAndStep<T> rowsBetweenUnboundedPreceding();
/**
@ -134,7 +135,7 @@ public interface WindowRowsStep<T> extends WindowFinalStep<T> {
* the window function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowRowsAndStep<T> rowsBetweenPreceding(int number);
/**
@ -142,7 +143,7 @@ public interface WindowRowsStep<T> extends WindowFinalStep<T> {
* the window function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowRowsAndStep<T> rowsBetweenCurrentRow();
/**
@ -150,7 +151,7 @@ public interface WindowRowsStep<T> extends WindowFinalStep<T> {
* the window function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowRowsAndStep<T> rowsBetweenUnboundedFollowing();
/**
@ -158,7 +159,7 @@ public interface WindowRowsStep<T> extends WindowFinalStep<T> {
* the window function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowRowsAndStep<T> rowsBetweenFollowing(int number);
/**
@ -166,7 +167,7 @@ public interface WindowRowsStep<T> extends WindowFinalStep<T> {
* function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowExcludeStep<T> rangeUnboundedPreceding();
/**
@ -174,14 +175,14 @@ public interface WindowRowsStep<T> extends WindowFinalStep<T> {
* function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowExcludeStep<T> rangePreceding(int number);
/**
* Add a <code>RANGE CURRENT ROW</code> frame clause to the window function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowExcludeStep<T> rangeCurrentRow();
/**
@ -189,7 +190,7 @@ public interface WindowRowsStep<T> extends WindowFinalStep<T> {
* function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowExcludeStep<T> rangeUnboundedFollowing();
/**
@ -197,7 +198,7 @@ public interface WindowRowsStep<T> extends WindowFinalStep<T> {
* function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowExcludeStep<T> rangeFollowing(int number);
/**
@ -205,7 +206,7 @@ public interface WindowRowsStep<T> extends WindowFinalStep<T> {
* the window function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowRowsAndStep<T> rangeBetweenUnboundedPreceding();
/**
@ -213,7 +214,7 @@ public interface WindowRowsStep<T> extends WindowFinalStep<T> {
* the window function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowRowsAndStep<T> rangeBetweenPreceding(int number);
/**
@ -221,7 +222,7 @@ public interface WindowRowsStep<T> extends WindowFinalStep<T> {
* the window function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowRowsAndStep<T> rangeBetweenCurrentRow();
/**
@ -229,7 +230,7 @@ public interface WindowRowsStep<T> extends WindowFinalStep<T> {
* the window function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowRowsAndStep<T> rangeBetweenUnboundedFollowing();
/**
@ -237,7 +238,7 @@ public interface WindowRowsStep<T> extends WindowFinalStep<T> {
* the window function.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowRowsAndStep<T> rangeBetweenFollowing(int number);
/**

View File

@ -42,6 +42,7 @@ package org.jooq;
// ...
// ...
// ...
import static org.jooq.SQLDialect.FIREBIRD;
import static org.jooq.SQLDialect.H2;
// ...
import static org.jooq.SQLDialect.MARIADB;
@ -102,7 +103,7 @@ public interface WindowSpecificationRowsStep extends WindowSpecificationFinalSte
* specification.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowSpecificationExcludeStep rowsUnboundedPreceding();
/**
@ -110,7 +111,7 @@ public interface WindowSpecificationRowsStep extends WindowSpecificationFinalSte
* specification.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowSpecificationExcludeStep rowsPreceding(int number);
/**
@ -118,7 +119,7 @@ public interface WindowSpecificationRowsStep extends WindowSpecificationFinalSte
* specification.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowSpecificationExcludeStep rowsCurrentRow();
/**
@ -126,7 +127,7 @@ public interface WindowSpecificationRowsStep extends WindowSpecificationFinalSte
* specification.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowSpecificationExcludeStep rowsUnboundedFollowing();
/**
@ -134,7 +135,7 @@ public interface WindowSpecificationRowsStep extends WindowSpecificationFinalSte
* specification.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowSpecificationExcludeStep rowsFollowing(int number);
/**
@ -142,7 +143,7 @@ public interface WindowSpecificationRowsStep extends WindowSpecificationFinalSte
* the window specification.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowSpecificationRowsAndStep rowsBetweenUnboundedPreceding();
/**
@ -150,7 +151,7 @@ public interface WindowSpecificationRowsStep extends WindowSpecificationFinalSte
* the window specification.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowSpecificationRowsAndStep rowsBetweenPreceding(int number);
/**
@ -158,7 +159,7 @@ public interface WindowSpecificationRowsStep extends WindowSpecificationFinalSte
* window specification.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowSpecificationRowsAndStep rowsBetweenCurrentRow();
/**
@ -166,7 +167,7 @@ public interface WindowSpecificationRowsStep extends WindowSpecificationFinalSte
* the window specification.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowSpecificationRowsAndStep rowsBetweenUnboundedFollowing();
/**
@ -174,7 +175,7 @@ public interface WindowSpecificationRowsStep extends WindowSpecificationFinalSte
* the window specification.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowSpecificationRowsAndStep rowsBetweenFollowing(int number);
/**
@ -182,7 +183,7 @@ public interface WindowSpecificationRowsStep extends WindowSpecificationFinalSte
* specification.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowSpecificationExcludeStep rangeUnboundedPreceding();
/**
@ -190,7 +191,7 @@ public interface WindowSpecificationRowsStep extends WindowSpecificationFinalSte
* specification.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowSpecificationExcludeStep rangePreceding(int number);
/**
@ -198,7 +199,7 @@ public interface WindowSpecificationRowsStep extends WindowSpecificationFinalSte
* specification.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowSpecificationExcludeStep rangeCurrentRow();
/**
@ -206,7 +207,7 @@ public interface WindowSpecificationRowsStep extends WindowSpecificationFinalSte
* specification.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowSpecificationExcludeStep rangeUnboundedFollowing();
/**
@ -214,7 +215,7 @@ public interface WindowSpecificationRowsStep extends WindowSpecificationFinalSte
* specification.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowSpecificationExcludeStep rangeFollowing(int number);
/**
@ -222,7 +223,7 @@ public interface WindowSpecificationRowsStep extends WindowSpecificationFinalSte
* the window specification.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowSpecificationRowsAndStep rangeBetweenUnboundedPreceding();
/**
@ -230,7 +231,7 @@ public interface WindowSpecificationRowsStep extends WindowSpecificationFinalSte
* the window specification.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowSpecificationRowsAndStep rangeBetweenPreceding(int number);
/**
@ -238,7 +239,7 @@ public interface WindowSpecificationRowsStep extends WindowSpecificationFinalSte
* window specification.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowSpecificationRowsAndStep rangeBetweenCurrentRow();
/**
@ -246,7 +247,7 @@ public interface WindowSpecificationRowsStep extends WindowSpecificationFinalSte
* the window specification.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowSpecificationRowsAndStep rangeBetweenUnboundedFollowing();
/**
@ -254,7 +255,7 @@ public interface WindowSpecificationRowsStep extends WindowSpecificationFinalSte
* the window specification.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
WindowSpecificationRowsAndStep rangeBetweenFollowing(int number);
/**

View File

@ -42,6 +42,7 @@ import static java.util.function.Function.identity;
// ...
// ...
// ...
import static org.jooq.SQLDialect.FIREBIRD;
import static org.jooq.SQLDialect.H2;
import static org.jooq.SQLDialect.HSQLDB;
// ...
@ -109,7 +110,7 @@ implements
static final Set<SQLDialect> SUPPORT_FILTER = SQLDialect.supportedBy(H2, HSQLDB, POSTGRES, SQLITE, YUGABYTE);
static final Set<SQLDialect> SUPPORT_FILTER = SQLDialect.supportedBy(FIREBIRD, H2, HSQLDB, POSTGRES, SQLITE, YUGABYTE);
static final Set<SQLDialect> SUPPORT_DISTINCT_RVE = SQLDialect.supportedBy(H2, POSTGRES);
static final Field<Integer> ASTERISK = DSL.field("*", Integer.class);

View File

@ -56,6 +56,7 @@ import static org.jooq.SQLDialect.DERBY;
// ...
import static org.jooq.SQLDialect.FIREBIRD;
// ...
// ...
import static org.jooq.SQLDialect.H2;
// ...
import static org.jooq.SQLDialect.HSQLDB;
@ -11487,7 +11488,7 @@ public class DSL {
* </pre></code>
*/
@NotNull
@Support({ MYSQL, POSTGRES, YUGABYTE })
@Support({ FIREBIRD, MYSQL, POSTGRES, YUGABYTE })
public static <R extends Record> Table<R> lateral(TableLike<R> table) {
return new Lateral<>(table.asTable());
}
@ -11803,7 +11804,7 @@ public class DSL {
* @see #default_()
*/
@NotNull
@Support({ CUBRID, DERBY, H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
public static Field<Object> defaultValue() {
return default_();
}
@ -11817,7 +11818,7 @@ public class DSL {
* @see #default_(Class)
*/
@NotNull
@Support({ CUBRID, DERBY, H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
public static <T> Field<T> defaultValue(Class<T> type) {
return default_(type);
}
@ -11831,7 +11832,7 @@ public class DSL {
* @see #default_(DataType)
*/
@NotNull
@Support({ CUBRID, DERBY, H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
public static <T> Field<T> defaultValue(DataType<T> type) {
return default_(type);
}
@ -11845,7 +11846,7 @@ public class DSL {
* @see #default_(Field)
*/
@NotNull
@Support({ CUBRID, DERBY, H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
public static <T> Field<T> defaultValue(Field<T> field) {
return default_(field);
}
@ -11860,7 +11861,7 @@ public class DSL {
* {@link #defaultValue(Class)} or {@link #defaultValue(DataType)} instead.
*/
@NotNull
@Support({ CUBRID, DERBY, H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
public static Field<Object> default_() {
return default_(Object.class);
}
@ -11870,7 +11871,7 @@ public class DSL {
* <code>UPDATE</code>, or <code>MERGE</code> statements.
*/
@NotNull
@Support({ CUBRID, DERBY, H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
public static <T> Field<T> default_(Class<T> type) {
return default_(getDataType(type));
}
@ -11880,7 +11881,7 @@ public class DSL {
* <code>UPDATE</code>, or <code>MERGE</code> statements.
*/
@NotNull
@Support({ CUBRID, DERBY, H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
public static <T> Field<T> default_(DataType<T> type) {
return new Default<T>(type);
}
@ -11890,7 +11891,7 @@ public class DSL {
* <code>UPDATE</code>, or <code>MERGE</code> statements.
*/
@NotNull
@Support({ CUBRID, DERBY, H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
public static <T> Field<T> default_(Field<T> field) {
return default_(field.getDataType());
}
@ -25464,7 +25465,7 @@ public class DSL {
* Create a {@link WindowSpecification} with a <code>ROWS</code> clause.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
public static WindowSpecificationExcludeStep rowsUnboundedPreceding() {
return new WindowSpecificationImpl().rowsUnboundedPreceding();
}
@ -25473,7 +25474,7 @@ public class DSL {
* Create a {@link WindowSpecification} with a <code>ROWS</code> clause.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
public static WindowSpecificationExcludeStep rowsPreceding(int number) {
return new WindowSpecificationImpl().rowsPreceding(number);
}
@ -25482,7 +25483,7 @@ public class DSL {
* Create a {@link WindowSpecification} with a <code>ROWS</code> clause.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
public static WindowSpecificationExcludeStep rowsCurrentRow() {
return new WindowSpecificationImpl().rowsCurrentRow();
}
@ -25491,7 +25492,7 @@ public class DSL {
* Create a {@link WindowSpecification} with a <code>ROWS</code> clause.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
public static WindowSpecificationExcludeStep rowsUnboundedFollowing() {
return new WindowSpecificationImpl().rowsUnboundedFollowing();
}
@ -25500,7 +25501,7 @@ public class DSL {
* Create a {@link WindowSpecification} with a <code>ROWS</code> clause.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
public static WindowSpecificationExcludeStep rowsFollowing(int number) {
return new WindowSpecificationImpl().rowsFollowing(number);
}
@ -25509,7 +25510,7 @@ public class DSL {
* Create a {@link WindowSpecification} with a <code>ROWS</code> clause.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
public static WindowSpecificationRowsAndStep rowsBetweenUnboundedPreceding() {
return new WindowSpecificationImpl().rowsBetweenUnboundedPreceding();
}
@ -25518,7 +25519,7 @@ public class DSL {
* Create a {@link WindowSpecification} with a <code>ROWS</code> clause.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
public static WindowSpecificationRowsAndStep rowsBetweenPreceding(int number) {
return new WindowSpecificationImpl().rowsBetweenPreceding(number);
}
@ -25527,7 +25528,7 @@ public class DSL {
* Create a {@link WindowSpecification} with a <code>ROWS</code> clause.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
public static WindowSpecificationRowsAndStep rowsBetweenCurrentRow() {
return new WindowSpecificationImpl().rowsBetweenCurrentRow();
}
@ -25536,7 +25537,7 @@ public class DSL {
* Create a {@link WindowSpecification} with a <code>ROWS</code> clause.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
public static WindowSpecificationRowsAndStep rowsBetweenUnboundedFollowing() {
return new WindowSpecificationImpl().rowsBetweenUnboundedFollowing();
}
@ -25545,7 +25546,7 @@ public class DSL {
* Create a {@link WindowSpecification} with a <code>ROWS</code> clause.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
public static WindowSpecificationRowsAndStep rowsBetweenFollowing(int number) {
return new WindowSpecificationImpl().rowsBetweenFollowing(number);
}
@ -25554,7 +25555,7 @@ public class DSL {
* Create a {@link WindowSpecification} with a <code>RANGE</code> clause.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
public static WindowSpecificationExcludeStep rangeUnboundedPreceding() {
return new WindowSpecificationImpl().rangeUnboundedPreceding();
}
@ -25563,7 +25564,7 @@ public class DSL {
* Create a {@link WindowSpecification} with a <code>RANGE</code> clause.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
public static WindowSpecificationExcludeStep rangePreceding(int number) {
return new WindowSpecificationImpl().rangePreceding(number);
}
@ -25572,7 +25573,7 @@ public class DSL {
* Create a {@link WindowSpecification} with a <code>RANGE</code> clause.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
public static WindowSpecificationExcludeStep rangeCurrentRow() {
return new WindowSpecificationImpl().rangeCurrentRow();
}
@ -25581,7 +25582,7 @@ public class DSL {
* Create a {@link WindowSpecification} with a <code>RANGE</code> clause.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
public static WindowSpecificationExcludeStep rangeUnboundedFollowing() {
return new WindowSpecificationImpl().rangeUnboundedFollowing();
}
@ -25590,7 +25591,7 @@ public class DSL {
* Create a {@link WindowSpecification} with a <code>RANGE</code> clause.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
public static WindowSpecificationExcludeStep rangeFollowing(int number) {
return new WindowSpecificationImpl().rangeFollowing(number);
}
@ -25599,7 +25600,7 @@ public class DSL {
* Create a {@link WindowSpecification} with a <code>RANGE</code> clause.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
public static WindowSpecificationRowsAndStep rangeBetweenUnboundedPreceding() {
return new WindowSpecificationImpl().rangeBetweenUnboundedPreceding();
}
@ -25608,7 +25609,7 @@ public class DSL {
* Create a {@link WindowSpecification} with a <code>RANGE</code> clause.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
public static WindowSpecificationRowsAndStep rangeBetweenPreceding(int number) {
return new WindowSpecificationImpl().rangeBetweenPreceding(number);
}
@ -25617,7 +25618,7 @@ public class DSL {
* Create a {@link WindowSpecification} with a <code>RANGE</code> clause.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
public static WindowSpecificationRowsAndStep rangeBetweenCurrentRow() {
return new WindowSpecificationImpl().rangeBetweenCurrentRow();
}
@ -25626,7 +25627,7 @@ public class DSL {
* Create a {@link WindowSpecification} with a <code>RANGE</code> clause.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
public static WindowSpecificationRowsAndStep rangeBetweenUnboundedFollowing() {
return new WindowSpecificationImpl().rangeBetweenUnboundedFollowing();
}
@ -25635,7 +25636,7 @@ public class DSL {
* Create a {@link WindowSpecification} with a <code>RANGE</code> clause.
*/
@NotNull
@Support({ H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
public static WindowSpecificationRowsAndStep rangeBetweenFollowing(int number) {
return new WindowSpecificationImpl().rangeBetweenFollowing(number);
}
@ -25771,7 +25772,7 @@ public class DSL {
* The <code>precent_rank() over ([analytic clause])</code> function.
*/
@NotNull
@Support({ CUBRID, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ CUBRID, FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
public static WindowOverStep<BigDecimal> percentRank() {
return new PercentRank();
}
@ -25780,7 +25781,7 @@ public class DSL {
* The <code>cume_dist() over ([analytic clause])</code> function.
*/
@NotNull
@Support({ CUBRID, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ CUBRID, FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
public static WindowOverStep<BigDecimal> cumeDist() {
return new CumeDist();
}
@ -25789,7 +25790,7 @@ public class DSL {
* The <code>ntile([number]) over ([analytic clause])</code> function.
*/
@NotNull
@Support({ CUBRID, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ CUBRID, FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
public static WindowOverStep<Integer> ntile(int number) {
return new Ntile(inline(number));
}
@ -25798,7 +25799,7 @@ public class DSL {
* The <code>ntile([number]) over ([analytic clause])</code> function.
*/
@NotNull
@Support({ CUBRID, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ CUBRID, FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
public static WindowOverStep<Integer> ntile(Field<Integer> number) {
return new Ntile(number);
}
@ -25807,7 +25808,7 @@ public class DSL {
* The <code>ratio_to_report([expression]) over ([analytic clause])</code> function.
*/
@NotNull
@Support({ CUBRID, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ CUBRID, FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
public static WindowOverStep<BigDecimal> ratioToReport(Number number) {
return ratioToReport(Tools.field(number));
}
@ -25816,7 +25817,7 @@ public class DSL {
* The <code>ratio_to_report([expression]) over ([analytic clause])</code> function.
*/
@NotNull
@Support({ CUBRID, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
@Support({ CUBRID, FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE })
public static WindowOverStep<BigDecimal> ratioToReport(Field<? extends Number> field) {
return new RatioToReport(Tools.nullSafe(field));
}

View File

@ -465,6 +465,7 @@ final class InsertQueryImpl<R extends Record> extends AbstractStoreQuery<R> impl
case IGNITE:

View File

@ -80,6 +80,7 @@ import static org.jooq.JoinType.RIGHT_OUTER_JOIN;
import static org.jooq.SQLDialect.CUBRID;
// ...
// ...
import static org.jooq.SQLDialect.FIREBIRD;
import static org.jooq.SQLDialect.H2;
// ...
import static org.jooq.SQLDialect.IGNITE;
@ -166,7 +167,7 @@ implements
private static final Set<SQLDialect> EMULATE_NATURAL_JOIN = SQLDialect.supportedBy(CUBRID);
private static final Set<SQLDialect> EMULATE_NATURAL_OUTER_JOIN = SQLDialect.supportedBy(CUBRID, H2, IGNITE);
private static final Set<SQLDialect> EMULATE_JOIN_USING = SQLDialect.supportedBy(CUBRID, IGNITE);
private static final Set<SQLDialect> EMULATE_APPLY = SQLDialect.supportedBy(POSTGRES, YUGABYTE);
private static final Set<SQLDialect> EMULATE_APPLY = SQLDialect.supportedBy(FIREBIRD, POSTGRES, YUGABYTE);
final Table<?> lhs;
final Table<?> rhs;

View File

@ -165,6 +165,7 @@ final class Limit extends AbstractQueryPart implements UTransient {
case DERBY:

View File

@ -85,6 +85,7 @@ final class MetaSQL {
M_SEQUENCES.put(DERBY, "select cast(null as varchar(32672)) as catalog, alias_8805161.SCHEMANAME, SYS.SYSSEQUENCES.SEQUENCENAME, SYS.SYSSEQUENCES.SEQUENCEDATATYPE, cast(null as int) as numeric_precision, cast(null as int) as numeric_scale, nullif(SYS.SYSSEQUENCES.STARTVALUE, 1) as STARTVALUE, nullif(SYS.SYSSEQUENCES.INCREMENT, 1) as INCREMENT, nullif(SYS.SYSSEQUENCES.MINIMUMVALUE, case when cast(SYS.SYSSEQUENCES.SEQUENCEDATATYPE as varchar(32672)) = 'SMALLINT' then -32768 when cast(SYS.SYSSEQUENCES.SEQUENCEDATATYPE as varchar(32672)) = 'INTEGER' then -2147483648 when cast(SYS.SYSSEQUENCES.SEQUENCEDATATYPE as varchar(32672)) = 'BIGINT' then -9223372036854775808 end) as MINIMUMVALUE, nullif(SYS.SYSSEQUENCES.MAXIMUMVALUE, case when cast(SYS.SYSSEQUENCES.SEQUENCEDATATYPE as varchar(32672)) = 'SMALLINT' then 32767 when cast(SYS.SYSSEQUENCES.SEQUENCEDATATYPE as varchar(32672)) = 'INTEGER' then 2147483647 when cast(SYS.SYSSEQUENCES.SEQUENCEDATATYPE as varchar(32672)) = 'BIGINT' then 9223372036854775807 end) as MAXIMUMVALUE, (SYS.SYSSEQUENCES.CYCLEOPTION = 'Y') as CYCLEOPTION, cast(null as bigint) as cache from (SYS.SYSSEQUENCES join SYS.SYSSCHEMAS as alias_8805161 on SYS.SYSSEQUENCES.SCHEMAID = alias_8805161.SCHEMAID) where cast(alias_8805161.SCHEMANAME as varchar(32672)) in (cast(? as varchar(32672))) order by alias_8805161.SCHEMANAME, SYS.SYSSEQUENCES.SEQUENCENAME");
@ -129,6 +130,7 @@ final class MetaSQL {
M_SEQUENCES_INCLUDING_SYSTEM_SEQUENCES.put(DERBY, "select cast(null as varchar(32672)) as catalog, alias_8805161.SCHEMANAME, SYS.SYSSEQUENCES.SEQUENCENAME, SYS.SYSSEQUENCES.SEQUENCEDATATYPE, cast(null as int) as numeric_precision, cast(null as int) as numeric_scale, nullif(SYS.SYSSEQUENCES.STARTVALUE, 1) as STARTVALUE, nullif(SYS.SYSSEQUENCES.INCREMENT, 1) as INCREMENT, nullif(SYS.SYSSEQUENCES.MINIMUMVALUE, case when cast(SYS.SYSSEQUENCES.SEQUENCEDATATYPE as varchar(32672)) = 'SMALLINT' then -32768 when cast(SYS.SYSSEQUENCES.SEQUENCEDATATYPE as varchar(32672)) = 'INTEGER' then -2147483648 when cast(SYS.SYSSEQUENCES.SEQUENCEDATATYPE as varchar(32672)) = 'BIGINT' then -9223372036854775808 end) as MINIMUMVALUE, nullif(SYS.SYSSEQUENCES.MAXIMUMVALUE, case when cast(SYS.SYSSEQUENCES.SEQUENCEDATATYPE as varchar(32672)) = 'SMALLINT' then 32767 when cast(SYS.SYSSEQUENCES.SEQUENCEDATATYPE as varchar(32672)) = 'INTEGER' then 2147483647 when cast(SYS.SYSSEQUENCES.SEQUENCEDATATYPE as varchar(32672)) = 'BIGINT' then 9223372036854775807 end) as MAXIMUMVALUE, (SYS.SYSSEQUENCES.CYCLEOPTION = 'Y') as CYCLEOPTION, cast(null as bigint) as cache from (SYS.SYSSEQUENCES join SYS.SYSSCHEMAS as alias_8805161 on SYS.SYSSEQUENCES.SCHEMAID = alias_8805161.SCHEMAID) where cast(alias_8805161.SCHEMANAME as varchar(32672)) in (cast(? as varchar(32672))) order by alias_8805161.SCHEMANAME, SYS.SYSSEQUENCES.SEQUENCENAME");
@ -172,6 +174,7 @@ final class MetaSQL {
}

View File

@ -95,6 +95,7 @@ implements
case CUBRID:
case FIREBIRD:
@ -107,7 +108,15 @@ implements
case POSTGRES:
case SQLITE:
case YUGABYTE:
ctx.visit(castIfNeeded(field, (DataType<?>) (ctx.family() == SQLITE ? DOUBLE : DECIMAL)))
DataType<?> cast;
switch (ctx.family()) {
case SQLITE: cast = DOUBLE; break;
case FIREBIRD: cast = DECIMAL(38, 19); break;
default: cast = DECIMAL; break;
}
ctx.visit(castIfNeeded(field, cast))
.sql(" / ")
.visit(DSL.sum(field));
acceptOverClause(ctx);

View File

@ -77,6 +77,7 @@ import static org.jooq.SQLDialect.DEFAULT;
import static org.jooq.SQLDialect.DERBY;
// ...
import static org.jooq.SQLDialect.FIREBIRD;
// ...
import static org.jooq.SQLDialect.H2;
// ...
import static org.jooq.SQLDialect.HSQLDB;
@ -97,7 +98,6 @@ import static org.jooq.SQLDialect.POSTGRES;
// ...
// ...
// ...
// ...
import static org.jooq.SQLDialect.SQLITE;
// ...
// ...
@ -109,7 +109,6 @@ import static org.jooq.SQLDialect.SQLITE;
import static org.jooq.SQLDialect.YUGABYTE;
import static org.jooq.SortOrder.DESC;
import static org.jooq.Traversers.containing;
import static org.jooq.Traversers.findingAny;
import static org.jooq.conf.ParamType.INLINED;
import static org.jooq.impl.AsteriskImpl.NO_SUPPORT_UNQUALIFIED_COMBINED;
import static org.jooq.impl.AsteriskImpl.SUPPORT_NATIVE_EXCEPT;
@ -124,7 +123,6 @@ import static org.jooq.impl.DSL.asterisk;
import static org.jooq.impl.DSL.createTable;
import static org.jooq.impl.DSL.falseCondition;
import static org.jooq.impl.DSL.generateSeries;
import static org.jooq.impl.DSL.groupingSets;
import static org.jooq.impl.DSL.inline;
import static org.jooq.impl.DSL.jsonArrayAgg;
import static org.jooq.impl.DSL.jsonObject;
@ -183,7 +181,6 @@ import static org.jooq.impl.SQLDataType.JSON;
import static org.jooq.impl.SQLDataType.JSONB;
import static org.jooq.impl.SQLDataType.VARCHAR;
import static org.jooq.impl.SQLDataType.XML;
import static org.jooq.impl.Tools.EMPTY_FIELD;
import static org.jooq.impl.Tools.aliased;
import static org.jooq.impl.Tools.aliasedFields;
import static org.jooq.impl.Tools.anyMatch;
@ -228,7 +225,6 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Deque;
import java.util.EnumSet;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@ -280,10 +276,8 @@ import org.jooq.TableOnStep;
import org.jooq.TableOptionalOnStep;
import org.jooq.TablePartitionByStep;
import org.jooq.Traverser;
import org.jooq.Traversers;
// ...
import org.jooq.WindowDefinition;
import org.jooq.WindowFinalStep;
import org.jooq.XML;
import org.jooq.exception.DataAccessException;
import org.jooq.impl.ForLock.ForLockMode;
@ -313,7 +307,7 @@ final class SelectQueryImpl<R extends Record> extends AbstractResultQuery<R> imp
static final Set<SQLDialect> NO_SUPPORT_WINDOW_CLAUSE = SQLDialect.supportedUntil(CUBRID, DERBY, FIREBIRD, HSQLDB, IGNITE, MARIADB);
static final Set<SQLDialect> NO_SUPPORT_WINDOW_CLAUSE = SQLDialect.supportedUntil(CUBRID, DERBY, HSQLDB, IGNITE, MARIADB);
private static final Set<SQLDialect> OPTIONAL_FROM_CLAUSE = SQLDialect.supportedBy(DEFAULT, H2, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTE);
private static final Set<SQLDialect> REQUIRES_DERIVED_TABLE_DML = SQLDialect.supportedBy(MARIADB, MYSQL);
@ -1761,6 +1755,7 @@ final class SelectQueryImpl<R extends Record> extends AbstractResultQuery<R> imp
case CUBRID:

View File

@ -37,62 +37,7 @@
*/
package org.jooq.tools.jdbc;
// ...
// ...
import static org.jooq.SQLDialect.CUBRID;
// ...
// ...
// ...
// ...
import static org.jooq.SQLDialect.DEFAULT;
import static org.jooq.SQLDialect.DERBY;
// ...
import static org.jooq.SQLDialect.FIREBIRD;
// ...
// ...
import static org.jooq.SQLDialect.H2;
// ...
import static org.jooq.SQLDialect.HSQLDB;
import static org.jooq.SQLDialect.IGNITE;
// ...
// ...
import static org.jooq.SQLDialect.MARIADB;
// ...
// ...
// ...
// ...
// ...
// ...
import static org.jooq.SQLDialect.MYSQL;
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
import static org.jooq.SQLDialect.*;
import static org.jooq.SQLDialect.POSTGRES;
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
import static org.jooq.SQLDialect.SQLITE;
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
import java.io.Closeable;
import java.sql.Array;
@ -430,6 +375,9 @@ public class JDBCUtils {
return FIREBIRD;
}