From f0ce069f120ad95774e7c9e5646fa8cd7493ce12 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Wed, 5 Apr 2023 15:11:10 +0200 Subject: [PATCH] [jOOQ/jOOQ#14914] Add DSL.domain(Name, DataType) and overloads --- jOOQ/src/main/java/org/jooq/impl/DSL.java | 38 ++++++++++++++++++- .../java/org/jooq/impl/DefaultDataType.java | 4 ++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/DSL.java b/jOOQ/src/main/java/org/jooq/impl/DSL.java index 5f0952bf1c..a450f71084 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DSL.java +++ b/jOOQ/src/main/java/org/jooq/impl/DSL.java @@ -14032,10 +14032,46 @@ public class DSL { @NotNull @Support({ FIREBIRD, H2, HSQLDB, POSTGRES, YUGABYTEDB }) public static Domain domain(Name name) { + return domain(name, SQLDataType.OTHER); + } + + /** + * Create a DOMAIN reference. + */ + @NotNull + @Support({ FIREBIRD, H2, HSQLDB, POSTGRES, YUGABYTEDB }) + public static Domain domain(String name, Class type) { + return domain(name(name), getDataType(type)); + } + + /** + * Create a DOMAIN reference. + */ + @NotNull + @Support({ FIREBIRD, H2, HSQLDB, POSTGRES, YUGABYTEDB }) + public static Domain domain(Name name, Class type) { + return domain(name, getDataType(type)); + } + + /** + * Create a DOMAIN reference. + */ + @NotNull + @Support({ FIREBIRD, H2, HSQLDB, POSTGRES, YUGABYTEDB }) + public static Domain domain(String name, DataType type) { + return domain(name(name), type); + } + + /** + * Create a DOMAIN reference. + */ + @NotNull + @Support({ FIREBIRD, H2, HSQLDB, POSTGRES, YUGABYTEDB }) + public static Domain domain(Name name, DataType type) { return new DomainImpl<>( name.qualified() ? schema(name.qualifier()) : null, name.unqualifiedName(), - new DefaultDataType<>(null, Object.class, name) + new DefaultDataType<>(null, type.getSQLDataType(), name) ); } diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultDataType.java b/jOOQ/src/main/java/org/jooq/impl/DefaultDataType.java index 873b8b6e5e..c7ac52a8e8 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultDataType.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultDataType.java @@ -323,6 +323,10 @@ public class DefaultDataType extends AbstractDataTypeX { this(dialect, null, type, qualifiedTypeName, null, null, null, null, null, Nullability.DEFAULT, null); } + DefaultDataType(SQLDialect dialect, DataType type, Name qualifiedTypeName) { + this(dialect, type, type.getType(), qualifiedTypeName, null, null, null, null, null, Nullability.DEFAULT, null); + } + DefaultDataType(SQLDialect dialect, Class type, Binding binding, Name qualifiedTypeName, String typeName, String castTypeName, Integer precision, Integer scale, Integer length, Nullability nullability, Field defaultValue) { this(dialect, null, type, binding, qualifiedTypeName, typeName, castTypeName, precision, scale, length, nullability, defaultValue); }