[jOOQ/jOOQ#14914] Add DSL.domain(Name, DataType<T>) and overloads

This commit is contained in:
Lukas Eder 2023-04-05 15:11:10 +02:00
parent ec36f45e8d
commit f0ce069f12
2 changed files with 41 additions and 1 deletions

View File

@ -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 <code>DOMAIN</code> reference.
*/
@NotNull
@Support({ FIREBIRD, H2, HSQLDB, POSTGRES, YUGABYTEDB })
public static <T> Domain<T> domain(String name, Class<T> type) {
return domain(name(name), getDataType(type));
}
/**
* Create a <code>DOMAIN</code> reference.
*/
@NotNull
@Support({ FIREBIRD, H2, HSQLDB, POSTGRES, YUGABYTEDB })
public static <T> Domain<T> domain(Name name, Class<T> type) {
return domain(name, getDataType(type));
}
/**
* Create a <code>DOMAIN</code> reference.
*/
@NotNull
@Support({ FIREBIRD, H2, HSQLDB, POSTGRES, YUGABYTEDB })
public static <T> Domain<T> domain(String name, DataType<T> type) {
return domain(name(name), type);
}
/**
* Create a <code>DOMAIN</code> reference.
*/
@NotNull
@Support({ FIREBIRD, H2, HSQLDB, POSTGRES, YUGABYTEDB })
public static <T> Domain<T> domain(Name name, DataType<T> type) {
return new DomainImpl<>(
name.qualified() ? schema(name.qualifier()) : null,
name.unqualifiedName(),
new DefaultDataType<>(null, Object.class, name)
new DefaultDataType<>(null, type.getSQLDataType(), name)
);
}

View File

@ -323,6 +323,10 @@ public class DefaultDataType<T> extends AbstractDataTypeX<T> {
this(dialect, null, type, qualifiedTypeName, null, null, null, null, null, Nullability.DEFAULT, null);
}
DefaultDataType(SQLDialect dialect, DataType<T> type, Name qualifiedTypeName) {
this(dialect, type, type.getType(), qualifiedTypeName, null, null, null, null, null, Nullability.DEFAULT, null);
}
DefaultDataType(SQLDialect dialect, Class<T> type, Binding<?, T> binding, Name qualifiedTypeName, String typeName, String castTypeName, Integer precision, Integer scale, Integer length, Nullability nullability, Field<T> defaultValue) {
this(dialect, null, type, binding, qualifiedTypeName, typeName, castTypeName, precision, scale, length, nullability, defaultValue);
}