in src/main/java/com/aliyun/odps/jdbc/OdpsDatabaseMetaData.java [1049:1075]
private void sortRows(List<Object[]> rows, int[] columnsToSort) {
rows.sort((row1, row2) -> {
Objects.requireNonNull(row1);
Objects.requireNonNull(row2);
if (row1.length != row2.length) {
throw new IllegalArgumentException("Rows have different length");
}
for (int i = 0; i < row1.length; i++) {
for (int idx : columnsToSort) {
if (row1[idx] != null && row2[idx] != null) {
int ret = ((String) row1[idx]).compareTo((String) row2[idx]);
if (ret == 0) {
continue;
}
return ret;
} else if (row1[idx] != null && row2[idx] == null) {
return 1;
} else if (row1[idx] == null && row2[idx] != null) {
return -1;
}
}
}
return 0;
});
}