From e5c5ca97fef35f94c1382d8edd2eaafccccf7683 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Tue, 25 Apr 2023 13:35:37 +0200 Subject: [PATCH] [jOOQ/jOOQ#12052] Add DuckDB support - WIP --- .../java/org/jooq/AlterTableAlterStep.java | 21 ++--- .../java/org/jooq/AlterTableDropStep.java | 3 +- .../main/java/org/jooq/AlterTableStep.java | 65 +++++++-------- .../src/main/java/org/jooq/AlterViewStep.java | 6 +- jOOQ/src/main/java/org/jooq/DSLContext.java | 22 ++--- .../java/org/jooq/impl/AlterTableImpl.java | 1 + jOOQ/src/main/java/org/jooq/impl/DSL.java | 22 ++--- .../java/org/jooq/impl/DefaultBinding.java | 80 +++++++++++++------ .../org/jooq/impl/RowSubqueryCondition.java | 2 +- 9 files changed, 127 insertions(+), 95 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/AlterTableAlterStep.java b/jOOQ/src/main/java/org/jooq/AlterTableAlterStep.java index 80a8575224..2a83493ead 100644 --- a/jOOQ/src/main/java/org/jooq/AlterTableAlterStep.java +++ b/jOOQ/src/main/java/org/jooq/AlterTableAlterStep.java @@ -48,6 +48,7 @@ import org.jetbrains.annotations.*; import static org.jooq.SQLDialect.CUBRID; // ... import static org.jooq.SQLDialect.DERBY; +import static org.jooq.SQLDialect.DUCKDB; // ... import static org.jooq.SQLDialect.FIREBIRD; // ... @@ -101,7 +102,7 @@ public interface AlterTableAlterStep { * This is an alias for {@link #default_(Object)}. */ @NotNull @CheckReturnValue - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) + @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) AlterTableFinalStep defaultValue(T literal); /** @@ -110,42 +111,42 @@ public interface AlterTableAlterStep { * This is an alias for {@link #default_(Field)}. */ @NotNull @CheckReturnValue - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) + @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) AlterTableFinalStep defaultValue(Field expression); /** * Specify a new column DEFAULT. */ @NotNull @CheckReturnValue - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) + @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) AlterTableFinalStep default_(T literal); /** * Specify a new column DEFAULT. */ @NotNull @CheckReturnValue - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) + @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) AlterTableFinalStep default_(Field expression); /** * Specify a new column DEFAULT. */ @NotNull @CheckReturnValue - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) + @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) AlterTableFinalStep setDefault(T literal); /** * Specify a new column DEFAULT. */ @NotNull @CheckReturnValue - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) + @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) AlterTableFinalStep setDefault(Field expression); /** * Drop the column DEFAULT. */ @NotNull @CheckReturnValue - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) + @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) AlterTableFinalStep dropDefault(); /** @@ -156,20 +157,20 @@ public interface AlterTableAlterStep { * support this). */ @NotNull @CheckReturnValue - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) AlterTableFinalStep set(DataType type); /** * Make the column NOT NULL. */ @NotNull @CheckReturnValue - @Support({ DERBY, FIREBIRD, H2, HSQLDB, POSTGRES, YUGABYTEDB }) + @Support({ DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, POSTGRES, YUGABYTEDB }) AlterTableFinalStep setNotNull(); /** * Make the column nullable. */ @NotNull @CheckReturnValue - @Support({ DERBY, FIREBIRD, H2, HSQLDB, POSTGRES, YUGABYTEDB }) + @Support({ DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, POSTGRES, YUGABYTEDB }) AlterTableFinalStep dropNotNull(); } diff --git a/jOOQ/src/main/java/org/jooq/AlterTableDropStep.java b/jOOQ/src/main/java/org/jooq/AlterTableDropStep.java index 05a10d85b9..f918be7560 100644 --- a/jOOQ/src/main/java/org/jooq/AlterTableDropStep.java +++ b/jOOQ/src/main/java/org/jooq/AlterTableDropStep.java @@ -43,6 +43,7 @@ import org.jetbrains.annotations.*; // ... // ... import static org.jooq.SQLDialect.DERBY; +import static org.jooq.SQLDialect.DUCKDB; import static org.jooq.SQLDialect.H2; import static org.jooq.SQLDialect.HSQLDB; // ... @@ -88,6 +89,6 @@ public interface AlterTableDropStep extends AlterTableFinalStep { * ALTER TABLE … DROP statement. */ @NotNull @CheckReturnValue - @Support({ DERBY, HSQLDB, POSTGRES, YUGABYTEDB }) + @Support({ DERBY, DUCKDB, HSQLDB, POSTGRES, YUGABYTEDB }) AlterTableFinalStep restrict(); } diff --git a/jOOQ/src/main/java/org/jooq/AlterTableStep.java b/jOOQ/src/main/java/org/jooq/AlterTableStep.java index 0e32ba038b..998ad28941 100644 --- a/jOOQ/src/main/java/org/jooq/AlterTableStep.java +++ b/jOOQ/src/main/java/org/jooq/AlterTableStep.java @@ -46,6 +46,7 @@ package org.jooq; 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; @@ -132,7 +133,7 @@ public interface AlterTableStep { * statement. */ @NotNull @CheckReturnValue - @Support({ CUBRID, DERBY, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) + @Support({ CUBRID, DERBY, DUCKDB, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) AlterTableFinalStep renameTo(Table newName); /** @@ -140,7 +141,7 @@ public interface AlterTableStep { * statement. */ @NotNull @CheckReturnValue - @Support({ CUBRID, DERBY, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) + @Support({ CUBRID, DERBY, DUCKDB, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) AlterTableFinalStep renameTo(Name newName); /** @@ -148,7 +149,7 @@ public interface AlterTableStep { * statement. */ @NotNull @CheckReturnValue - @Support({ CUBRID, DERBY, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) + @Support({ CUBRID, DERBY, DUCKDB, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) AlterTableFinalStep renameTo(String newName); /** @@ -156,7 +157,7 @@ public interface AlterTableStep { * statement. */ @NotNull @CheckReturnValue - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) + @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) AlterTableRenameColumnToStep renameColumn(Field oldName); /** @@ -164,7 +165,7 @@ public interface AlterTableStep { * statement. */ @NotNull @CheckReturnValue - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) + @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) AlterTableRenameColumnToStep renameColumn(Name oldName); /** @@ -172,7 +173,7 @@ public interface AlterTableStep { * statement. */ @NotNull @CheckReturnValue - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) + @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) AlterTableRenameColumnToStep renameColumn(String oldName); /** @@ -240,7 +241,7 @@ public interface AlterTableStep { * This is an alias for {@link #alterColumn(Field)}. */ @NotNull @CheckReturnValue - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) AlterTableAlterStep alter(Field field); /** @@ -250,7 +251,7 @@ public interface AlterTableStep { * This is an alias for {@link #alterColumn(Name)} */ @NotNull @CheckReturnValue - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) AlterTableAlterStep alter(Name field); /** @@ -260,7 +261,7 @@ public interface AlterTableStep { * This is an alias for {@link #alterColumn(String)} */ @NotNull @CheckReturnValue - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) AlterTableAlterStep alter(String field); /** @@ -268,7 +269,7 @@ public interface AlterTableStep { * statement. */ @NotNull @CheckReturnValue - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) AlterTableAlterStep alterColumn(Field field); /** @@ -276,7 +277,7 @@ public interface AlterTableStep { * statement. */ @NotNull @CheckReturnValue - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) AlterTableAlterStep alterColumn(Name field); /** @@ -284,7 +285,7 @@ public interface AlterTableStep { * statement. */ @NotNull @CheckReturnValue - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) AlterTableAlterStep alterColumn(String field); /** @@ -374,7 +375,7 @@ public interface AlterTableStep { * This is an alias for {@link #addColumnIfNotExists(Field)}. */ @NotNull @CheckReturnValue - @Support({ H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) AlterTableAddStep addIfNotExists(Field field); /** @@ -384,7 +385,7 @@ public interface AlterTableStep { * This is an alias for {@link #addColumnIfNotExists(Field, DataType)}. */ @NotNull @CheckReturnValue - @Support({ H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) AlterTableAddStep addIfNotExists(Field field, DataType type); /** @@ -394,7 +395,7 @@ public interface AlterTableStep { * This is an alias for {@link #addColumnIfNotExists(Name, DataType)}. */ @NotNull @CheckReturnValue - @Support({ H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) AlterTableAddStep addIfNotExists(Name field, DataType type); /** @@ -404,7 +405,7 @@ public interface AlterTableStep { * This is an alias for {@link #addColumnIfNotExists(String, DataType)}. */ @NotNull @CheckReturnValue - @Support({ H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) AlterTableAddStep addIfNotExists(String field, DataType type); /** @@ -444,7 +445,7 @@ public interface AlterTableStep { * statement. */ @NotNull @CheckReturnValue - @Support({ H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) AlterTableAddStep addColumnIfNotExists(Field field); /** @@ -452,7 +453,7 @@ public interface AlterTableStep { * statement. */ @NotNull @CheckReturnValue - @Support({ H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) AlterTableAddStep addColumnIfNotExists(Field field, DataType type); /** @@ -460,7 +461,7 @@ public interface AlterTableStep { * statement. */ @NotNull @CheckReturnValue - @Support({ H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) AlterTableAddStep addColumnIfNotExists(Name field, DataType type); /** @@ -468,7 +469,7 @@ public interface AlterTableStep { * statement. */ @NotNull @CheckReturnValue - @Support({ H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) AlterTableAddStep addColumnIfNotExists(String field, DataType type); /** @@ -486,7 +487,7 @@ public interface AlterTableStep { * This is an alias for {@link #dropColumn(Field)}. */ @NotNull @CheckReturnValue - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) + @Support AlterTableDropStep drop(Field field); /** @@ -496,7 +497,7 @@ public interface AlterTableStep { * This is an alias for {@link #dropColumn(Name)}. */ @NotNull @CheckReturnValue - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) + @Support AlterTableDropStep drop(Name field); /** @@ -506,7 +507,7 @@ public interface AlterTableStep { * This is an alias for {@link #dropColumn(String)}. */ @NotNull @CheckReturnValue - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) + @Support AlterTableDropStep drop(String field); /** @@ -516,7 +517,7 @@ public interface AlterTableStep { * This is an alias for {@link #dropColumnIfExists(Field)}. */ @NotNull @CheckReturnValue - @Support({ H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) AlterTableDropStep dropIfExists(Field field); /** @@ -526,7 +527,7 @@ public interface AlterTableStep { * This is an alias for {@link #dropColumnIfExists(Name)}. */ @NotNull @CheckReturnValue - @Support({ H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) AlterTableDropStep dropIfExists(Name field); /** @@ -536,7 +537,7 @@ public interface AlterTableStep { * This is an alias for {@link #dropColumnIfExists(String)}. */ @NotNull @CheckReturnValue - @Support({ H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) AlterTableDropStep dropIfExists(String field); /** @@ -544,7 +545,7 @@ public interface AlterTableStep { * statement. */ @NotNull @CheckReturnValue - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) + @Support AlterTableDropStep dropColumn(Field field); /** @@ -552,7 +553,7 @@ public interface AlterTableStep { * statement. */ @NotNull @CheckReturnValue - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) + @Support AlterTableDropStep dropColumn(Name field); /** @@ -560,7 +561,7 @@ public interface AlterTableStep { * statement. */ @NotNull @CheckReturnValue - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, TRINO, YUGABYTEDB }) + @Support AlterTableDropStep dropColumn(String field); /** @@ -568,7 +569,7 @@ public interface AlterTableStep { * statement. */ @NotNull @CheckReturnValue - @Support({ H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) AlterTableDropStep dropColumnIfExists(Field field); /** @@ -576,7 +577,7 @@ public interface AlterTableStep { * statement. */ @NotNull @CheckReturnValue - @Support({ H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) AlterTableDropStep dropColumnIfExists(Name field); /** @@ -584,7 +585,7 @@ public interface AlterTableStep { * statement. */ @NotNull @CheckReturnValue - @Support({ H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) AlterTableDropStep dropColumnIfExists(String field); /** diff --git a/jOOQ/src/main/java/org/jooq/AlterViewStep.java b/jOOQ/src/main/java/org/jooq/AlterViewStep.java index 1478ad5ea8..483f214c9e 100644 --- a/jOOQ/src/main/java/org/jooq/AlterViewStep.java +++ b/jOOQ/src/main/java/org/jooq/AlterViewStep.java @@ -87,21 +87,21 @@ public interface AlterViewStep { /** * Add the RENAME TO clause to the ALTER VIEW statement. */ - @Support({ H2, HSQLDB, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, H2, HSQLDB, POSTGRES, TRINO, YUGABYTEDB }) @NotNull @CheckReturnValue AlterViewFinalStep renameTo(@Stringly.Name String renameTo); /** * Add the RENAME TO clause to the ALTER VIEW statement. */ - @Support({ H2, HSQLDB, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, H2, HSQLDB, POSTGRES, TRINO, YUGABYTEDB }) @NotNull @CheckReturnValue AlterViewFinalStep renameTo(Name renameTo); /** * Add the RENAME TO clause to the ALTER VIEW statement. */ - @Support({ H2, HSQLDB, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, H2, HSQLDB, POSTGRES, TRINO, YUGABYTEDB }) @NotNull @CheckReturnValue AlterViewFinalStep renameTo(Table renameTo); diff --git a/jOOQ/src/main/java/org/jooq/DSLContext.java b/jOOQ/src/main/java/org/jooq/DSLContext.java index e43a0697f1..d8c6577c29 100644 --- a/jOOQ/src/main/java/org/jooq/DSLContext.java +++ b/jOOQ/src/main/java/org/jooq/DSLContext.java @@ -9581,7 +9581,7 @@ public interface DSLContext extends Scope { * @see DSL#alterView(String) */ @NotNull @CheckReturnValue - @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) AlterViewStep alterView(@Stringly.Name String view); /** @@ -9590,7 +9590,7 @@ public interface DSLContext extends Scope { * @see DSL#alterView(Name) */ @NotNull @CheckReturnValue - @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) AlterViewStep alterView(Name view); /** @@ -9599,7 +9599,7 @@ public interface DSLContext extends Scope { * @see DSL#alterView(Table) */ @NotNull @CheckReturnValue - @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) AlterViewStep alterView(Table view); /** @@ -9608,7 +9608,7 @@ public interface DSLContext extends Scope { * @see DSL#alterViewIfExists(String) */ @NotNull @CheckReturnValue - @Support({ H2, POSTGRES, YUGABYTEDB }) + @Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB }) AlterViewStep alterViewIfExists(@Stringly.Name String view); /** @@ -9617,7 +9617,7 @@ public interface DSLContext extends Scope { * @see DSL#alterViewIfExists(Name) */ @NotNull @CheckReturnValue - @Support({ H2, POSTGRES, YUGABYTEDB }) + @Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB }) AlterViewStep alterViewIfExists(Name view); /** @@ -9626,7 +9626,7 @@ public interface DSLContext extends Scope { * @see DSL#alterViewIfExists(Table) */ @NotNull @CheckReturnValue - @Support({ H2, POSTGRES, YUGABYTEDB }) + @Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB }) AlterViewStep alterViewIfExists(Table view); /** @@ -9635,7 +9635,7 @@ public interface DSLContext extends Scope { * @see DSL#alterView(Table, Field...) */ @NotNull @CheckReturnValue - @Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) AlterViewStep alterView(Table view, Field... fields); /** @@ -9644,7 +9644,7 @@ public interface DSLContext extends Scope { * @see DSL#alterView(Table, Collection) */ @NotNull @CheckReturnValue - @Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) AlterViewStep alterView(Table view, Collection> fields); /** @@ -11866,7 +11866,7 @@ public interface DSLContext extends Scope { * @see DSL#alterTableIfExists(String) */ @NotNull @CheckReturnValue - @Support({ H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) AlterTableStep alterTableIfExists(String table); /** @@ -11875,7 +11875,7 @@ public interface DSLContext extends Scope { * @see DSL#alterTableIfExists(Name) */ @NotNull @CheckReturnValue - @Support({ H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) AlterTableStep alterTableIfExists(Name table); /** @@ -11884,7 +11884,7 @@ public interface DSLContext extends Scope { * @see DSL#alterTableIfExists(Table) */ @NotNull @CheckReturnValue - @Support({ H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) AlterTableStep alterTableIfExists(Table table); // ------------------------------------------------------------------------- diff --git a/jOOQ/src/main/java/org/jooq/impl/AlterTableImpl.java b/jOOQ/src/main/java/org/jooq/impl/AlterTableImpl.java index a42a6d2730..1530cfcce2 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AlterTableImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/AlterTableImpl.java @@ -1491,6 +1491,7 @@ implements case DERBY: + case DUCKDB: case TRINO: ctx.sql(' ').visit(K_SET_DATA_TYPE); break; diff --git a/jOOQ/src/main/java/org/jooq/impl/DSL.java b/jOOQ/src/main/java/org/jooq/impl/DSL.java index 0efe797af3..9fad863f95 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DSL.java +++ b/jOOQ/src/main/java/org/jooq/impl/DSL.java @@ -7626,7 +7626,7 @@ public class DSL { * @see DSLContext#alterView(String) */ @NotNull @CheckReturnValue - @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) public static org.jooq.AlterViewStep alterView(@Stringly.Name String view) { return dsl().alterView(view); } @@ -7641,7 +7641,7 @@ public class DSL { * @see DSLContext#alterView(Name) */ @NotNull @CheckReturnValue - @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) public static org.jooq.AlterViewStep alterView(Name view) { return dsl().alterView(view); } @@ -7656,7 +7656,7 @@ public class DSL { * @see DSLContext#alterView(Table) */ @NotNull @CheckReturnValue - @Support({ FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) public static org.jooq.AlterViewStep alterView(Table view) { return dsl().alterView(view); } @@ -7671,7 +7671,7 @@ public class DSL { * @see DSLContext#alterViewIfExists(String) */ @NotNull @CheckReturnValue - @Support({ H2, POSTGRES, YUGABYTEDB }) + @Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB }) public static org.jooq.AlterViewStep alterViewIfExists(@Stringly.Name String view) { return dsl().alterViewIfExists(view); } @@ -7686,7 +7686,7 @@ public class DSL { * @see DSLContext#alterViewIfExists(Name) */ @NotNull @CheckReturnValue - @Support({ H2, POSTGRES, YUGABYTEDB }) + @Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB }) public static org.jooq.AlterViewStep alterViewIfExists(Name view) { return dsl().alterViewIfExists(view); } @@ -7701,7 +7701,7 @@ public class DSL { * @see DSLContext#alterViewIfExists(Table) */ @NotNull @CheckReturnValue - @Support({ H2, POSTGRES, YUGABYTEDB }) + @Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB }) public static org.jooq.AlterViewStep alterViewIfExists(Table view) { return dsl().alterViewIfExists(view); } @@ -7716,7 +7716,7 @@ public class DSL { * @see DSLContext#alterView(Table, Field...) */ @NotNull @CheckReturnValue - @Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) public static org.jooq.AlterViewStep alterView(Table view, Field... fields) { return dsl().alterView(view, fields); } @@ -7731,7 +7731,7 @@ public class DSL { * @see DSLContext#alterView(Table, Collection) */ @NotNull @CheckReturnValue - @Support({ FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, FIREBIRD, H2, MARIADB, MYSQL, POSTGRES, TRINO, YUGABYTEDB }) public static org.jooq.AlterViewStep alterView(Table view, Collection> fields) { return dsl().alterView(view, fields); } @@ -10888,7 +10888,7 @@ public class DSL { * @see DSLContext#alterTableIfExists(String) */ @NotNull - @Support({ H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) public static AlterTableStep alterTableIfExists(String table) { return dsl().alterTableIfExists(table); } @@ -10899,7 +10899,7 @@ public class DSL { * @see DSLContext#alterTableIfExists(Name) */ @NotNull - @Support({ H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) public static AlterTableStep alterTableIfExists(Name table) { return dsl().alterTableIfExists(table); } @@ -10910,7 +10910,7 @@ public class DSL { * @see DSLContext#alterTableIfExists(Table) */ @NotNull - @Support({ H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) + @Support({ DUCKDB, H2, IGNITE, MARIADB, POSTGRES, TRINO, YUGABYTEDB }) public static AlterTableStep alterTableIfExists(Table table) { return dsl().alterTableIfExists(table); } diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java b/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java index 3695502996..c9b8bae66e 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java @@ -2379,12 +2379,16 @@ public class DefaultBinding implements Binding { @Override final void setNull0(BindingSetStatementContext ctx) throws SQLException { + switch (ctx.family()) { - super.setNull0(ctx); + default: + super.setNull0(ctx); + break; + } } @Override @@ -2443,6 +2447,7 @@ public class DefaultBinding implements Binding { @Override final void sqlBind0(BindingSQLContext ctx, Date value) throws SQLException { + switch (ctx.family()) { @@ -2453,12 +2458,15 @@ public class DefaultBinding implements Binding { - - super.sqlBind0(ctx, value); + default: + super.sqlBind0(ctx, value); + break; + } } @Override final void register0(BindingRegisterContext ctx) throws SQLException { + switch (ctx.family()) { @@ -2466,14 +2474,23 @@ public class DefaultBinding implements Binding { - - super.register0(ctx); + default: + super.register0(ctx); + break; + } } @Override final void set0(BindingSetStatementContext ctx, Date value) throws SQLException { - if (ctx.family() == SQLITE) - ctx.statement().setString(ctx.index(), value.toString()); + switch (ctx.family()) { + + // DuckDB doesn't support setDate() yet: https://github.com/duckdb/duckdb/discussions/7207 + case DUCKDB: + + // SQLite's type affinity needs special care... + case SQLITE: + ctx.statement().setString(ctx.index(), value.toString()); + break; @@ -2481,12 +2498,16 @@ public class DefaultBinding implements Binding { - else - ctx.statement().setDate(ctx.index(), value); + + default: + ctx.statement().setDate(ctx.index(), value); + break; + } } @Override final void set0(BindingSetSQLOutputContext ctx, Date value) throws SQLException { + switch (ctx.family()) { @@ -2495,18 +2516,21 @@ public class DefaultBinding implements Binding { - ctx.output().writeDate(value); + default: + ctx.output().writeDate(value); + break; + } } @Override final Date get0(BindingGetResultSetContext ctx) throws SQLException { - SQLDialect family = ctx.family(); + switch (ctx.family()) { - // SQLite's type affinity needs special care... - if (family == SQLITE) { - String date = ctx.resultSet().getString(ctx.index()); - return date == null ? null : new Date(parse(Date.class, date)); - } + // SQLite's type affinity needs special care... + case SQLITE: { + String date = ctx.resultSet().getString(ctx.index()); + return date == null ? null : new Date(parse(Date.class, date)); + } @@ -2516,13 +2540,14 @@ public class DefaultBinding implements Binding { - else { - return ctx.resultSet().getDate(ctx.index()); + default: + return ctx.resultSet().getDate(ctx.index()); } } @Override final Date get0(BindingGetStatementContext ctx) throws SQLException { + switch (ctx.family()) { @@ -2531,13 +2556,14 @@ public class DefaultBinding implements Binding { - - - return ctx.statement().getDate(ctx.index()); + default: + return ctx.statement().getDate(ctx.index()); + } } @Override final Date get0(BindingGetSQLInputContext ctx) throws SQLException { + switch (ctx.family()) { @@ -2546,21 +2572,23 @@ public class DefaultBinding implements Binding { - - - return ctx.input().readDate(); + default: + return ctx.input().readDate(); + } } @Override final int sqltype(Statement statement, Configuration configuration) { + switch (configuration.family()) { - - return Types.DATE; + default: + return Types.DATE; + } } } diff --git a/jOOQ/src/main/java/org/jooq/impl/RowSubqueryCondition.java b/jOOQ/src/main/java/org/jooq/impl/RowSubqueryCondition.java index 473d52aa45..a7483f2b6c 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowSubqueryCondition.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowSubqueryCondition.java @@ -85,7 +85,7 @@ import org.jooq.impl.Tools.BooleanDataKey; final class RowSubqueryCondition extends AbstractCondition implements UNotYetImplemented { private static final Clause[] CLAUSES = { CONDITION, CONDITION_COMPARISON }; private static final Set NO_SUPPORT_NATIVE = SQLDialect.supportedBy(CUBRID, DERBY, DUCKDB, FIREBIRD); - private static final Set NO_SUPPORT_QUANTIFIED = SQLDialect.supportedBy(DERBY, FIREBIRD, SQLITE); + private static final Set NO_SUPPORT_QUANTIFIED = SQLDialect.supportedBy(DERBY, DUCKDB, FIREBIRD, SQLITE); // See https://bugs.mysql.com/bug.php?id=103494 private static final Set NO_SUPPORT_QUANTIFIED_OTHER_THAN_IN_NOT_IN = SQLDialect.supportedBy(MARIADB, MYSQL);