DSL::abs must maintain the input data type, not override it with the default INTEGER type
This commit is contained in:
Lukas Eder 2020-12-10 11:06:55 +01:00
parent 66e86da28e
commit 92ecc6788e
2 changed files with 3 additions and 3 deletions

View File

@ -68,7 +68,7 @@ extends
Abs(
Field<T> number
) {
super(N_ABS, allNotNull((DataType) INTEGER, number));
super(N_ABS, allNotNull((DataType) dataType(INTEGER, number, false), number));
this.number = nullSafeNotNull(number, INTEGER);
}

View File

@ -5896,12 +5896,12 @@ final class Tools {
return result;
}
private static final DataType<?> dataType(Field<?> field) {
static final DataType<?> dataType(Field<?> field) {
return dataType(OTHER, field, false);
}
@SuppressWarnings("unchecked")
private static final <T> DataType<T> dataType(DataType<T> defaultType, Field<?> field, boolean preferDefault) {
static final <T> DataType<T> dataType(DataType<T> defaultType, Field<?> field, boolean preferDefault) {
return field == null
? defaultType
: preferDefault && field.getType() != defaultType.getType()