From b39e88f4b772eb973aa68ed6666a32ca6d72ba2d Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Tue, 26 Mar 2024 17:13:27 +0100 Subject: [PATCH] [jOOQ/jOOQ#15732] UDT bind variable support --- jOOQ/src/main/java/org/jooq/AlterTableStep.java | 4 ++-- jOOQ/src/main/java/org/jooq/impl/DSL.java | 8 ++++---- jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java | 2 +- .../main/java/org/jooq/impl/QualifiedRecordConstant.java | 3 +++ 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/AlterTableStep.java b/jOOQ/src/main/java/org/jooq/AlterTableStep.java index 7c3e6be9a2..befc9944f0 100644 --- a/jOOQ/src/main/java/org/jooq/AlterTableStep.java +++ b/jOOQ/src/main/java/org/jooq/AlterTableStep.java @@ -329,7 +329,7 @@ public interface AlterTableStep { * the ALTER TABLE statement. */ @NotNull @CheckReturnValue - @Support({ CLICKHOUSE, FIREBIRD, H2, IGNITE, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) + @Support({ CLICKHOUSE, DUCKDB, FIREBIRD, H2, IGNITE, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) AlterTableAddStep add(TableElement... fields); /** @@ -337,7 +337,7 @@ public interface AlterTableStep { * the ALTER TABLE statement. */ @NotNull @CheckReturnValue - @Support({ CLICKHOUSE, FIREBIRD, H2, IGNITE, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) + @Support({ CLICKHOUSE, DUCKDB, FIREBIRD, H2, IGNITE, MARIADB, MYSQL, POSTGRES, YUGABYTEDB }) AlterTableAddStep add(Collection fields); /** diff --git a/jOOQ/src/main/java/org/jooq/impl/DSL.java b/jOOQ/src/main/java/org/jooq/impl/DSL.java index 82b9ddf862..5397e03e21 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DSL.java +++ b/jOOQ/src/main/java/org/jooq/impl/DSL.java @@ -13692,7 +13692,7 @@ public class DSL { * Create a qualified type, given its type name. */ @NotNull - @Support({ H2, POSTGRES, YUGABYTEDB }) + @Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB }) public static Type type(@Stringly.Name String name) { return type(name(name)); } @@ -13701,7 +13701,7 @@ public class DSL { * Create a qualified type, given its type name. */ @NotNull - @Support({ H2, POSTGRES, YUGABYTEDB }) + @Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB }) public static Type type(Name name) { return type(name, SQLDataType.OTHER); } @@ -13710,7 +13710,7 @@ public class DSL { * Create a qualified type, given its type name. */ @NotNull - @Support({ H2, POSTGRES, YUGABYTEDB }) + @Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB }) public static Type type(@Stringly.Name String name, DataType type) { return type(name(name), type); } @@ -13719,7 +13719,7 @@ public class DSL { * Create a qualified type, given its type name. */ @NotNull - @Support({ H2, POSTGRES, YUGABYTEDB }) + @Support({ DUCKDB, H2, POSTGRES, YUGABYTEDB }) public static Type type(Name name, DataType type) { return new TypeImpl<>(name, CommentImpl.NO_COMMENT, type); } diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java b/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java index 9dd1377a83..f72dbd9da6 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java @@ -3972,7 +3972,7 @@ public class DefaultBinding implements Binding { - static final Set REQUIRE_RECORD_CAST = SQLDialect.supportedBy(POSTGRES, YUGABYTEDB); + static final Set REQUIRE_RECORD_CAST = SQLDialect.supportedBy(DUCKDB, POSTGRES, YUGABYTEDB); DefaultRecordBinding(DataType dataType, Converter converter) { super(dataType, converter); diff --git a/jOOQ/src/main/java/org/jooq/impl/QualifiedRecordConstant.java b/jOOQ/src/main/java/org/jooq/impl/QualifiedRecordConstant.java index 2dd202ab5a..a218ebde8f 100644 --- a/jOOQ/src/main/java/org/jooq/impl/QualifiedRecordConstant.java +++ b/jOOQ/src/main/java/org/jooq/impl/QualifiedRecordConstant.java @@ -149,6 +149,7 @@ final class QualifiedRecordConstant> extends Abstra + case DUCKDB: case POSTGRES: case YUGABYTEDB: c.visit(K_ROW); @@ -192,6 +193,7 @@ final class QualifiedRecordConstant> extends Abstra switch (ctx.family()) { + case DUCKDB: case POSTGRES: case YUGABYTEDB: return "ROW"; @@ -219,6 +221,7 @@ final class QualifiedRecordConstant> extends Abstra // Postgres cannot bind a complete structured type. The type is // inlined instead: ROW(.., .., ..) + case DUCKDB: case POSTGRES: case YUGABYTEDB: { if (value != null)