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); }