[jOOQ/jOOQ#13085] Field.sortAsc() should not hard wire NULLS FIRST behaviour

This commit is contained in:
Lukas Eder 2022-02-16 15:08:58 +01:00
parent e8b125ffa3
commit 6a78fb2000

View File

@ -68,6 +68,7 @@ import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
@ -303,7 +304,13 @@ abstract class AbstractField<T> extends AbstractTypedNamed<T> implements Field<T
@Override
public final SortField<Integer> sortAsc(Collection<T> sortList) {
return Tools.isEmpty(sortList) ? sortConstant() : DSL.field(this, fieldsArray(sortList.toArray(), getDataType())).asc();
Map<T, Integer> map = new LinkedHashMap<>();
int i = 0;
for (T value : sortList)
map.put(value, i++);
return sort(map);
}
@Override
@ -314,7 +321,13 @@ abstract class AbstractField<T> extends AbstractTypedNamed<T> implements Field<T
@Override
public final SortField<Integer> sortDesc(Collection<T> sortList) {
return Tools.isEmpty(sortList) ? sortConstant() : DSL.field(this, fieldsArray(sortList.toArray(), getDataType())).desc();
Map<T, Integer> map = new LinkedHashMap<>();
int i = 0;
for (T value : sortList)
map.put(value, i--);
return sort(map);
}
@Override