[jOOQ/jOOQ#12052] Add DuckDB support - WIP

This commit is contained in:
Lukas Eder 2023-04-18 18:36:55 +02:00
parent 467f91a6ef
commit 10bc1a2ffc
17 changed files with 200 additions and 87 deletions

View File

@ -45,6 +45,7 @@ import org.jooq.SQLDialect;
import org.jooq.meta.cubrid.CUBRIDDatabase;
// ...
import org.jooq.meta.derby.DerbyDatabase;
import org.jooq.meta.duckdb.DuckDBDatabase;
// ...
import org.jooq.meta.firebird.FirebirdDatabase;
import org.jooq.meta.h2.H2Database;
@ -109,6 +110,7 @@ public class Databases {
case CUBRID: result = CUBRIDDatabase.class; break;
case DERBY: result = DerbyDatabase.class; break;
case DUCKDB: result = DuckDBDatabase.class; break;
case FIREBIRD: result = FirebirdDatabase.class; break;
case H2: result = H2Database.class; break;
case HSQLDB: result = HSQLDBDatabase.class; break;

View File

@ -52,6 +52,7 @@ import static org.jooq.SQLDialect.CUBRID;
// ...
import static org.jooq.SQLDialect.DEFAULT;
import static org.jooq.SQLDialect.DERBY;
import static org.jooq.SQLDialect.DUCKDB;
// ...
import static org.jooq.SQLDialect.FIREBIRD;
import static org.jooq.SQLDialect.H2;
@ -182,6 +183,7 @@ public @interface Allow {
CUBRID,
DEFAULT,
DERBY,
DUCKDB,
FIREBIRD,
H2,
HSQLDB,

View File

@ -486,7 +486,7 @@ public interface AlterTableStep {
* This is an alias for {@link #dropColumn(Field)}.
*/
@NotNull @CheckReturnValue
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
AlterTableDropStep drop(Field<?> field);
/**
@ -496,7 +496,7 @@ public interface AlterTableStep {
* This is an alias for {@link #dropColumn(Name)}.
*/
@NotNull @CheckReturnValue
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
AlterTableDropStep drop(Name field);
/**
@ -506,7 +506,7 @@ public interface AlterTableStep {
* This is an alias for {@link #dropColumn(String)}.
*/
@NotNull @CheckReturnValue
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
AlterTableDropStep drop(String field);
/**
@ -544,7 +544,7 @@ public interface AlterTableStep {
* statement.
*/
@NotNull @CheckReturnValue
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
AlterTableDropStep dropColumn(Field<?> field);
/**
@ -552,7 +552,7 @@ public interface AlterTableStep {
* statement.
*/
@NotNull @CheckReturnValue
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
AlterTableDropStep dropColumn(Name field);
/**
@ -560,7 +560,7 @@ public interface AlterTableStep {
* statement.
*/
@NotNull @CheckReturnValue
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
AlterTableDropStep dropColumn(String field);
/**

View File

@ -1433,14 +1433,14 @@ extends
* @param exponent is wrapped as {@link #val(Object)}.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
Field<BigDecimal> power(Number exponent);
/**
* The <code>POWER</code> operator.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
Field<BigDecimal> power(Field<? extends Number> exponent);
/**
@ -1449,14 +1449,14 @@ extends
* @param exponent is wrapped as {@link #val(Object)}.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
Field<BigDecimal> pow(Number exponent);
/**
* The <code>POW</code> operator, an alias for the <code>POWER</code> operator.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
Field<BigDecimal> pow(Field<? extends Number> exponent);
/**

View File

@ -97,7 +97,7 @@ public enum JoinType {
* <code>CROSS JOIN</code> two tables.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
CROSS_JOIN("cross join", false),
/**

View File

@ -110,6 +110,11 @@ public enum SQLDialect {
*/
DERBY("Derby", false, true),
/**
* The DuckDB dialect family.
*/
DUCKDB("DuckDB", false, true),
/**
* The Firebird dialect family.
* <p>

View File

@ -383,7 +383,7 @@ public interface SelectJoinStep<R extends Record> extends SelectWhereStep<R> {
* @see Table#crossJoin(TableLike)
*/
@NotNull @CheckReturnValue
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
SelectJoinStep<R> crossJoin(TableLike<?> table);
/**
@ -408,7 +408,7 @@ public interface SelectJoinStep<R extends Record> extends SelectWhereStep<R> {
* @see SQL
*/
@NotNull @CheckReturnValue
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
@PlainSQL
SelectJoinStep<R> crossJoin(SQL sql);
@ -434,7 +434,7 @@ public interface SelectJoinStep<R extends Record> extends SelectWhereStep<R> {
* @see SQL
*/
@NotNull @CheckReturnValue
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
@PlainSQL
SelectJoinStep<R> crossJoin(String sql);
@ -461,7 +461,7 @@ public interface SelectJoinStep<R extends Record> extends SelectWhereStep<R> {
* @see SQL
*/
@NotNull @CheckReturnValue
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
@PlainSQL
SelectJoinStep<R> crossJoin(String sql, Object... bindings);
@ -488,7 +488,7 @@ public interface SelectJoinStep<R extends Record> extends SelectWhereStep<R> {
* @see SQL
*/
@NotNull @CheckReturnValue
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
@PlainSQL
SelectJoinStep<R> crossJoin(String sql, QueryPart... parts);
@ -508,7 +508,7 @@ public interface SelectJoinStep<R extends Record> extends SelectWhereStep<R> {
* @see Table#crossJoin(Name)
*/
@NotNull @CheckReturnValue
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
SelectJoinStep<R> crossJoin(Name name);
/**

View File

@ -140,7 +140,7 @@ public interface SelectLimitAfterOffsetStep<R extends Record> extends SelectForU
* function and nested <code>SELECT</code> statements.
*/
@NotNull @CheckReturnValue
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
SelectLimitPercentAfterOffsetStep<R> limit(Number numberOfRows);
/**
@ -156,7 +156,7 @@ public interface SelectLimitAfterOffsetStep<R extends Record> extends SelectForU
* statements.
*/
@NotNull @CheckReturnValue
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
SelectLimitPercentAfterOffsetStep<R> limit(Field<? extends Number> numberOfRows);
}

View File

@ -178,7 +178,7 @@ public interface SelectLimitStep<R extends Record> extends SelectForUpdateStep<R
* <code>SELECT</code> statements.
*/
@NotNull @CheckReturnValue
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
SelectWithTiesAfterOffsetStep<R> limit(Number offset, Number numberOfRows);
/**
@ -194,7 +194,7 @@ public interface SelectLimitStep<R extends Record> extends SelectForUpdateStep<R
* and nested <code>SELECT</code> statements.
*/
@NotNull @CheckReturnValue
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
SelectLimitPercentAfterOffsetStep<R> limit(Number offset, Field<? extends Number> numberOfRows);
/**
@ -210,7 +210,7 @@ public interface SelectLimitStep<R extends Record> extends SelectForUpdateStep<R
* and nested <code>SELECT</code> statements.
*/
@NotNull @CheckReturnValue
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
SelectLimitPercentAfterOffsetStep<R> limit(Field<? extends Number> offset, Number numberOfRows);
/**
@ -226,7 +226,7 @@ public interface SelectLimitStep<R extends Record> extends SelectForUpdateStep<R
* and nested <code>SELECT</code> statements.
*/
@NotNull @CheckReturnValue
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
SelectLimitPercentAfterOffsetStep<R> limit(Field<? extends Number> offset, Field<? extends Number> numberOfRows);
/**
@ -240,7 +240,7 @@ public interface SelectLimitStep<R extends Record> extends SelectForUpdateStep<R
* <code>SELECT</code> statements.
*/
@NotNull @CheckReturnValue
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
SelectLimitAfterOffsetStep<R> offset(Number offset);
/**
@ -254,6 +254,6 @@ public interface SelectLimitStep<R extends Record> extends SelectForUpdateStep<R
* <code>SELECT</code> statements.
*/
@NotNull @CheckReturnValue
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
SelectLimitAfterOffsetStep<R> offset(Field<? extends Number> offset);
}

View File

@ -144,7 +144,7 @@ public interface SelectOffsetStep<R extends Record> extends SelectForUpdateStep<
* <code>SELECT</code> statements.
*/
@NotNull @CheckReturnValue
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
SelectForUpdateStep<R> offset(Number offset);
/**
@ -158,6 +158,6 @@ public interface SelectOffsetStep<R extends Record> extends SelectForUpdateStep<
* <code>SELECT</code> statements.
*/
@NotNull @CheckReturnValue
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
SelectForUpdateStep<R> offset(Field<? extends Number> offset);
}

View File

@ -713,7 +713,7 @@ public interface SelectQuery<R extends Record> extends Select<R>, ConditionProvi
* emulated with a <code>ROW_NUMBER()</code> window function and nested
* <code>SELECT</code> statements.
*/
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
void addOffset(Number offset);
/**
@ -726,7 +726,7 @@ public interface SelectQuery<R extends Record> extends Select<R>, ConditionProvi
* emulated with a <code>ROW_NUMBER()</code> window function and nested
* <code>SELECT</code> statements.
*/
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
void addOffset(Field<? extends Number> offset);
/**
@ -756,7 +756,7 @@ public interface SelectQuery<R extends Record> extends Select<R>, ConditionProvi
*
* @param numberOfRows The number of rows to return
*/
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
void addLimit(Field<? extends Number> numberOfRows);
/**
@ -773,7 +773,7 @@ public interface SelectQuery<R extends Record> extends Select<R>, ConditionProvi
* @param offset The lowest offset starting at 0
* @param numberOfRows The number of rows to return
*/
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
void addLimit(Number offset, Number numberOfRows);
/**
@ -791,7 +791,7 @@ public interface SelectQuery<R extends Record> extends Select<R>, ConditionProvi
* @param offset The lowest offset starting at 0
* @param numberOfRows The number of rows to return
*/
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
void addLimit(Field<? extends Number> offset, Number numberOfRows);
/**
@ -809,7 +809,7 @@ public interface SelectQuery<R extends Record> extends Select<R>, ConditionProvi
* @param offset The lowest offset starting at 0
* @param numberOfRows The number of rows to return
*/
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
void addLimit(Number offset, Field<? extends Number> numberOfRows);
/**
@ -827,7 +827,7 @@ public interface SelectQuery<R extends Record> extends Select<R>, ConditionProvi
* @param offset The lowest offset starting at 0
* @param numberOfRows The number of rows to return
*/
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
void addLimit(Field<? extends Number> offset, Field<? extends Number> numberOfRows);
/**

View File

@ -1797,7 +1797,7 @@ extends
* </code></pre>
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
Table<Record> crossJoin(TableLike<?> table);
/**
@ -1819,7 +1819,7 @@ extends
* @see SQL
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
@PlainSQL
Table<Record> crossJoin(SQL sql);
@ -1842,7 +1842,7 @@ extends
* @see SQL
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
@PlainSQL
Table<Record> crossJoin(String sql);
@ -1866,7 +1866,7 @@ extends
* @see SQL
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
@PlainSQL
Table<Record> crossJoin(String sql, Object... bindings);
@ -1890,7 +1890,7 @@ extends
* @see SQL
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
@PlainSQL
Table<Record> crossJoin(String sql, QueryPart... parts);
@ -1907,7 +1907,7 @@ extends
* @see DSL#table(Name)
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
Table<Record> crossJoin(Name name);
/**

View File

@ -16891,7 +16891,7 @@ public class DSL {
* @param value is wrapped as {@link #val(Object)}.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> cos(Number value) {
return new Cos(Tools.field(value));
}
@ -16900,7 +16900,7 @@ public class DSL {
* The <code>COS</code> function.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> cos(Field<? extends Number> value) {
return new Cos(value);
}
@ -16911,7 +16911,7 @@ public class DSL {
* @param value is wrapped as {@link #val(Object)}.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> cosh(Number value) {
return new Cosh(Tools.field(value));
}
@ -16920,7 +16920,7 @@ public class DSL {
* The <code>COSH</code> function.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> cosh(Field<? extends Number> value) {
return new Cosh(value);
}
@ -16931,7 +16931,7 @@ public class DSL {
* @param value is wrapped as {@link #val(Object)}.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> cot(Number value) {
return new Cot(Tools.field(value));
}
@ -16940,7 +16940,7 @@ public class DSL {
* The <code>COT</code> function.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> cot(Field<? extends Number> value) {
return new Cot(value);
}
@ -16951,7 +16951,7 @@ public class DSL {
* @param value is wrapped as {@link #val(Object)}.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> coth(Number value) {
return new Coth(Tools.field(value));
}
@ -16960,7 +16960,7 @@ public class DSL {
* The <code>COTH</code> function.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> coth(Field<? extends Number> value) {
return new Coth(value);
}
@ -17008,7 +17008,7 @@ public class DSL {
* @param value is wrapped as {@link #val(Object)}.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> exp(Number value) {
return new Exp(Tools.field(value));
}
@ -17017,7 +17017,7 @@ public class DSL {
* The <code>EXP</code> function.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> exp(Field<? extends Number> value) {
return new Exp(value);
}
@ -17054,7 +17054,7 @@ public class DSL {
* @param value is wrapped as {@link #val(Object)}.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> ln(Number value) {
return new Ln(Tools.field(value));
}
@ -17065,7 +17065,7 @@ public class DSL {
* Get the natural logarithm of a value.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> ln(Field<? extends Number> value) {
return new Ln(value);
}
@ -17079,7 +17079,7 @@ public class DSL {
* @param base is wrapped as {@link #val(Object)}.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> log(Number value, int base) {
return new Log(Tools.field(value), Tools.field(base));
}
@ -17092,7 +17092,7 @@ public class DSL {
* @param value is wrapped as {@link #val(Object)}.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> log(Number value, Field<? extends Number> base) {
return new Log(Tools.field(value), base);
}
@ -17105,7 +17105,7 @@ public class DSL {
* @param base is wrapped as {@link #val(Object)}.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> log(Field<? extends Number> value, int base) {
return new Log(value, Tools.field(base));
}
@ -17116,7 +17116,7 @@ public class DSL {
* Get the logarithm of a value for a base.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> log(Field<? extends Number> value, Field<? extends Number> base) {
return new Log(value, base);
}
@ -17129,7 +17129,7 @@ public class DSL {
* @param value is wrapped as {@link #val(Object)}.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> log10(Number value) {
return new Log10(Tools.field(value));
}
@ -17140,7 +17140,7 @@ public class DSL {
* Get the logarithm of a value for base 10.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> log10(Field<? extends Number> value) {
return new Log10(value);
}
@ -17163,7 +17163,7 @@ public class DSL {
* @param exponent is wrapped as {@link #val(Object)}.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> power(Number base, Number exponent) {
return new Power(Tools.field(base), Tools.field(exponent));
}
@ -17174,7 +17174,7 @@ public class DSL {
* @param base is wrapped as {@link #val(Object)}.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> power(Number base, Field<? extends Number> exponent) {
return new Power(Tools.field(base), exponent);
}
@ -17185,7 +17185,7 @@ public class DSL {
* @param exponent is wrapped as {@link #val(Object)}.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> power(Field<? extends Number> base, Number exponent) {
return new Power(base, Tools.field(exponent));
}
@ -17194,7 +17194,7 @@ public class DSL {
* The <code>POWER</code> function.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> power(Field<? extends Number> base, Field<? extends Number> exponent) {
return new Power(base, exponent);
}
@ -17231,7 +17231,7 @@ public class DSL {
* Get a random numeric value.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> rand() {
return new Rand();
}
@ -17460,7 +17460,7 @@ public class DSL {
* @param value is wrapped as {@link #val(Object)}.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> sin(Number value) {
return new Sin(Tools.field(value));
}
@ -17469,7 +17469,7 @@ public class DSL {
* The <code>SIN</code> function.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> sin(Field<? extends Number> value) {
return new Sin(value);
}
@ -17480,7 +17480,7 @@ public class DSL {
* @param value is wrapped as {@link #val(Object)}.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> sinh(Number value) {
return new Sinh(Tools.field(value));
}
@ -17489,7 +17489,7 @@ public class DSL {
* The <code>SINH</code> function.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> sinh(Field<? extends Number> value) {
return new Sinh(value);
}
@ -17500,7 +17500,7 @@ public class DSL {
* @param value is wrapped as {@link #val(Object)}.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> sqrt(Number value) {
return new Sqrt(Tools.field(value));
}
@ -17509,7 +17509,7 @@ public class DSL {
* The <code>SQRT</code> function.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> sqrt(Field<? extends Number> value) {
return new Sqrt(value);
}
@ -17540,7 +17540,7 @@ public class DSL {
* @param value is wrapped as {@link #val(Object)}.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> tan(Number value) {
return new Tan(Tools.field(value));
}
@ -17549,7 +17549,7 @@ public class DSL {
* The <code>TAN</code> function.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> tan(Field<? extends Number> value) {
return new Tan(value);
}
@ -17560,7 +17560,7 @@ public class DSL {
* @param value is wrapped as {@link #val(Object)}.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> tanh(Number value) {
return new Tanh(Tools.field(value));
}
@ -17569,7 +17569,7 @@ public class DSL {
* The <code>TANH</code> function.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<BigDecimal> tanh(Field<? extends Number> value) {
return new Tanh(value);
}
@ -18271,7 +18271,7 @@ public class DSL {
* @param startIndex The start index (1-based) from which to start looking for the substring.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<Integer> position(@Stringly.Param String in, @Stringly.Param String search, int startIndex) {
return new Position(Tools.field(in), Tools.field(search), Tools.field(startIndex));
}
@ -18286,7 +18286,7 @@ public class DSL {
* @param startIndex The start index (1-based) from which to start looking for the substring.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<Integer> position(@Stringly.Param String in, @Stringly.Param String search, Field<? extends Number> startIndex) {
return new Position(Tools.field(in), Tools.field(search), startIndex);
}
@ -18301,7 +18301,7 @@ public class DSL {
* @param startIndex The start index (1-based) from which to start looking for the substring.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<Integer> position(@Stringly.Param String in, Field<String> search, int startIndex) {
return new Position(Tools.field(in), search, Tools.field(startIndex));
}
@ -18316,7 +18316,7 @@ public class DSL {
* @param startIndex The start index (1-based) from which to start looking for the substring.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<Integer> position(@Stringly.Param String in, Field<String> search, Field<? extends Number> startIndex) {
return new Position(Tools.field(in), search, startIndex);
}
@ -18331,7 +18331,7 @@ public class DSL {
* @param startIndex The start index (1-based) from which to start looking for the substring.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<Integer> position(Field<String> in, @Stringly.Param String search, int startIndex) {
return new Position(in, Tools.field(search), Tools.field(startIndex));
}
@ -18346,7 +18346,7 @@ public class DSL {
* @param startIndex The start index (1-based) from which to start looking for the substring.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<Integer> position(Field<String> in, @Stringly.Param String search, Field<? extends Number> startIndex) {
return new Position(in, Tools.field(search), startIndex);
}
@ -18361,7 +18361,7 @@ public class DSL {
* @param startIndex The start index (1-based) from which to start looking for the substring.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<Integer> position(Field<String> in, Field<String> search, int startIndex) {
return new Position(in, search, Tools.field(startIndex));
}
@ -18376,7 +18376,7 @@ public class DSL {
* @param startIndex The start index (1-based) from which to start looking for the substring.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<Integer> position(Field<String> in, Field<String> search, Field<? extends Number> startIndex) {
return new Position(in, search, startIndex);
}
@ -18390,7 +18390,7 @@ public class DSL {
* @param search The substring to search for.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<Integer> position(@Stringly.Param String in, @Stringly.Param String search) {
return new Position(Tools.field(in), Tools.field(search));
}
@ -18404,7 +18404,7 @@ public class DSL {
* @param search The substring to search for.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<Integer> position(@Stringly.Param String in, Field<String> search) {
return new Position(Tools.field(in), search);
}
@ -18418,7 +18418,7 @@ public class DSL {
* @param search The substring to search for.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<Integer> position(Field<String> in, @Stringly.Param String search) {
return new Position(in, Tools.field(search));
}
@ -18432,7 +18432,7 @@ public class DSL {
* @param search The substring to search for.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static Field<Integer> position(Field<String> in, Field<String> search) {
return new Position(in, search);
}
@ -21864,7 +21864,7 @@ public class DSL {
* The <code>COUNT_DISTINCT</code> function.
*/
@NotNull
@Support
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB })
public static AggregateFunction<Integer> countDistinct(Field<?> field) {
return new Count(field, true);
}

View File

@ -46,6 +46,7 @@ package org.jooq.impl;
import static org.jooq.SQLDialect.CUBRID;
// ...
import static org.jooq.SQLDialect.DERBY;
import static org.jooq.SQLDialect.DUCKDB;
// ...
import static org.jooq.SQLDialect.FIREBIRD;
import static org.jooq.SQLDialect.H2;
@ -93,13 +94,13 @@ import org.jooq.Geography;
import org.jooq.Geometry;
import org.jooq.JSON;
import org.jooq.JSONB;
// ...
import org.jooq.Record;
import org.jooq.Result;
import org.jooq.RowId;
import org.jooq.SQLDialect;
import org.jooq.SQLDialectCategory;
import org.jooq.XML;
import org.jooq.impl.SQLDataTypes.DuckDBDataType;
import org.jooq.impl.SQLDataTypes.TrinoDataType;
import org.jooq.types.DayToSecond;
import org.jooq.types.UByte;
@ -851,6 +852,9 @@ public final class SQLDataType {
Class.forName(DerbyDataType.class.getName());
initJSR310Types(DERBY);
Class.forName(DuckDBDataType.class.getName());
initJSR310Types(DUCKDB);
Class.forName(FirebirdDataType.class.getName());
initJSR310Types(FIREBIRD);

View File

@ -51,7 +51,16 @@ import java.util.UUID;
import org.jooq.DataType;
import org.jooq.JSON;
import org.jooq.JSONB;
import org.jooq.Record;
import org.jooq.Result;
import org.jooq.SQLDialect;
import org.jooq.types.DayToSecond;
import org.jooq.types.UByte;
import org.jooq.types.UInteger;
import org.jooq.types.ULong;
import org.jooq.types.UShort;
import org.jooq.types.YearToMonth;
import org.jooq.types.YearToSecond;
/**
* A wrapper for dialect specific, internal data types.
@ -63,6 +72,87 @@ final class SQLDataTypes {
private SQLDataTypes() {}
static class DuckDBDataType {
private static final SQLDialect FAMILY = SQLDialect.DUCKDB;
// -------------------------------------------------------------------------
// Default SQL data types and synonyms thereof
// -------------------------------------------------------------------------
public static final DataType<Byte> TINYINT = new BuiltInDataType<>(FAMILY, SQLDataType.TINYINT, "tinyint");
public static final DataType<Short> SMALLINT = new BuiltInDataType<>(FAMILY, SQLDataType.SMALLINT, "smallint");
public static final DataType<Integer> INT = new BuiltInDataType<>(FAMILY, SQLDataType.INTEGER, "int");
public static final DataType<Integer> INTEGER = new BuiltInDataType<>(FAMILY, SQLDataType.INTEGER, "integer");
public static final DataType<Long> BIGINT = new BuiltInDataType<>(FAMILY, SQLDataType.BIGINT, "bigint");
public static final DataType<Double> DOUBLE = new BuiltInDataType<>(FAMILY, SQLDataType.DOUBLE, "double");
public static final DataType<Double> DOUBLEPRECISION = new BuiltInDataType<>(FAMILY, SQLDataType.DOUBLE, "double precision");
public static final DataType<Double> FLOAT = new BuiltInDataType<>(FAMILY, SQLDataType.FLOAT, "float");
public static final DataType<Float> REAL = new BuiltInDataType<>(FAMILY, SQLDataType.REAL, "real");
public static final DataType<Boolean> BOOLEAN = new BuiltInDataType<>(FAMILY, SQLDataType.BOOLEAN, "boolean");
public static final DataType<Boolean> BIT = new BuiltInDataType<>(FAMILY, SQLDataType.BIT, "bit");
public static final DataType<BigDecimal> DECIMAL = new BuiltInDataType<>(FAMILY, SQLDataType.DECIMAL, "decimal(p, s)");
public static final DataType<BigDecimal> NUMERIC = new BuiltInDataType<>(FAMILY, SQLDataType.NUMERIC, "numeric(p, s)");
public static final DataType<String> VARCHAR = new BuiltInDataType<>(FAMILY, SQLDataType.VARCHAR, "varchar(l)", "varchar(32672)");
public static final DataType<String> LONGVARCHAR = new BuiltInDataType<>(FAMILY, SQLDataType.LONGVARCHAR, "longvarchar(l)");
public static final DataType<String> CHAR = new BuiltInDataType<>(FAMILY, SQLDataType.CHAR, "char(l)");
public static final DataType<String> CHARACTER = new BuiltInDataType<>(FAMILY, SQLDataType.CHAR, "character(l)");
public static final DataType<String> CHARACTERVARYING = new BuiltInDataType<>(FAMILY, SQLDataType.VARCHAR, "character varying(l)", "character varying(32672)");
public static final DataType<String> CLOB = new BuiltInDataType<>(FAMILY, SQLDataType.CLOB, "clob");
public static final DataType<String> CHARLARGEOBJECT = new BuiltInDataType<>(FAMILY, SQLDataType.CLOB, "char large object", "clob");
public static final DataType<String> CHARACTERLARGEOBJECT = new BuiltInDataType<>(FAMILY, SQLDataType.CLOB, "character large object", "clob");
public static final DataType<Date> DATE = new BuiltInDataType<>(FAMILY, SQLDataType.DATE, "date");
public static final DataType<Time> TIME = new BuiltInDataType<>(FAMILY, SQLDataType.TIME, "time(p)");
public static final DataType<Time> TIMEWITHOUTTIMEZONE = new BuiltInDataType<>(FAMILY, SQLDataType.TIME, "time(p) without time zone");
public static final DataType<OffsetTime> TIMEWITHTIMEZONE = new BuiltInDataType<>(FAMILY, SQLDataType.TIMEWITHTIMEZONE, "time(p) with time zone");
public static final DataType<Timestamp> TIMESTAMP = new BuiltInDataType<>(FAMILY, SQLDataType.TIMESTAMP, "timestamp(p)");
public static final DataType<Timestamp> TIMESTAMPWITHOUTTIMEZONE = new BuiltInDataType<>(FAMILY, SQLDataType.TIMESTAMP, "timestamp(p) without time zone");
public static final DataType<Timestamp> DATETIME = new BuiltInDataType<>(FAMILY, SQLDataType.TIMESTAMP, "datetime(p)");
public static final DataType<OffsetDateTime> TIMESTAMPWITHTIMEZONE = new BuiltInDataType<>(FAMILY, SQLDataType.TIMESTAMPWITHTIMEZONE, "timestamp(p) with time zone");
public static final DataType<Instant> INSTANT = new BuiltInDataType<>(FAMILY, SQLDataType.INSTANT, "timestamp(p) with time zone");
public static final DataType<byte[]> LONGVARBINARY = new BuiltInDataType<>(FAMILY, SQLDataType.LONGVARBINARY, "longvarbinary(l)");
public static final DataType<byte[]> VARBINARY = new BuiltInDataType<>(FAMILY, SQLDataType.VARBINARY, "varbinary(l)", "varbinary(32672)");
public static final DataType<byte[]> BINARY = new BuiltInDataType<>(FAMILY, SQLDataType.BINARY, "binary(l)");
public static final DataType<byte[]> BLOB = new BuiltInDataType<>(FAMILY, SQLDataType.BLOB, "blob");
public static final DataType<byte[]> BINARYLARGEOBJECT = new BuiltInDataType<>(FAMILY, SQLDataType.BLOB, "binary large object", "blob");
public static final DataType<Object> OTHER = new BuiltInDataType<>(FAMILY, SQLDataType.OTHER, "other");
public static final DataType<YearToSecond> INTERVAL = new BuiltInDataType<>(FAMILY, SQLDataType.INTERVAL, "interval");
public static final DataType<YearToMonth> INTERVALYEARTOMONTH = new BuiltInDataType<>(FAMILY, SQLDataType.INTERVALYEARTOMONTH, "interval year to month");
public static final DataType<DayToSecond> INTERVALDAYTOSECOND = new BuiltInDataType<>(FAMILY, SQLDataType.INTERVALDAYTOSECOND, "interval day to second", "interval day(9) to second");
// -------------------------------------------------------------------------
// Compatibility types for supported SQLDialect.HSQLDB, SQLDataTypes
// -------------------------------------------------------------------------
protected static final DataType<String> __NCHAR = new BuiltInDataType<>(FAMILY, SQLDataType.NCHAR, "char(l)");
protected static final DataType<String> __NCLOB = new BuiltInDataType<>(FAMILY, SQLDataType.NCLOB, "clob");
protected static final DataType<String> __LONGNVARCHAR = new BuiltInDataType<>(FAMILY, SQLDataType.LONGNVARCHAR, "longvarchar(l)");
protected static final DataType<String> __NVARCHAR = new BuiltInDataType<>(FAMILY, SQLDataType.NVARCHAR, "varchar(l)", "varchar(32672)");
protected static final DataType<UByte> __TINYINTUNSIGNED = new BuiltInDataType<>(FAMILY, SQLDataType.TINYINTUNSIGNED, "smallint");
protected static final DataType<UShort> __SMALLINTUNSIGNED = new BuiltInDataType<>(FAMILY, SQLDataType.SMALLINTUNSIGNED, "int");
protected static final DataType<UInteger> __INTEGERUNSIGNED = new BuiltInDataType<>(FAMILY, SQLDataType.INTEGERUNSIGNED, "bigint");
protected static final DataType<ULong> __BIGINTUNSIGNED = new BuiltInDataType<>(FAMILY, SQLDataType.BIGINTUNSIGNED, "decimal(p, s)");
protected static final DataType<JSON> __JSON = new BuiltInDataType<>(FAMILY, SQLDataType.JSON, "clob");
protected static final DataType<JSONB> __JSONB = new BuiltInDataType<>(FAMILY, SQLDataType.JSONB, "blob");
protected static final DataType<Year> __YEAR = new BuiltInDataType<>(FAMILY, SQLDataType.YEAR, "smallint");
// -------------------------------------------------------------------------
// Compatibility types for supported Java types
// -------------------------------------------------------------------------
protected static final DataType<BigInteger> __BIGINTEGER = new BuiltInDataType<>(FAMILY, SQLDataType.DECIMAL_INTEGER, "decimal(p, s)");
// -------------------------------------------------------------------------
// Dialect-specific data types and synonyms thereof
// -------------------------------------------------------------------------
public static final DataType<UUID> UUID = new BuiltInDataType<>(FAMILY, SQLDataType.UUID, "uuid");
public static final DataType<String> VARCHARIGNORECASE = new BuiltInDataType<>(FAMILY, SQLDataType.VARCHAR, "varchar_ignorecase(l)", "varchar_ignorecase(32672)");
public static final DataType<Object> OBJECT = new BuiltInDataType<>(FAMILY, SQLDataType.OTHER, "object");
public static final DataType<Result<Record>> ROW = new BuiltInDataType<>(FAMILY, SQLDataType.RESULT, "row");
}
static class TrinoDataType {
private static final SQLDialect FAMILY = SQLDialect.TRINO;

View File

@ -452,6 +452,8 @@ public class JDBCUtils {
return CUBRID;
else if (url.contains(":derby:"))
return DERBY;
else if (url.contains(":duckdb:"))
return DUCKDB;
else if (url.contains(":firebirdsql:"))
return FIREBIRD;
else if (url.contains(":h2:"))
@ -523,6 +525,8 @@ public class JDBCUtils {
return "cubrid.jdbc.driver.CUBRIDDriver";
case DERBY:
return "org.apache.derby.jdbc.ClientDriver";
case DUCKDB:
return "org.duckdb.DuckDBDriver";
case FIREBIRD:
return "org.firebirdsql.jdbc.FBDriver";
case H2:

View File

@ -23,6 +23,7 @@
<!-- These in-memory DBs are used by jOOQ-meta-extensions and a variety of integration tests -->
<h2.version>2.1.214</h2.version>
<sqlite.version>3.39.4.1</sqlite.version>
<duckdb.version>0.7.1</duckdb.version>
<derby.version>10.14.2.0</derby.version>
<hsqldb.version>2.7.1</hsqldb.version>
@ -404,6 +405,11 @@
<artifactId>sqlite-jdbc</artifactId>
<version>${sqlite.version}</version>
</dependency>
<dependency>
<groupId>org.duckdb</groupId>
<artifactId>duckdb_jdbc</artifactId>
<version>${duckdb.version}</version>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>