private void sortRows()

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