docs: protected Iterator<BufferedRow> initialize() {
          // Load everthing into the buffer ...
          batchSize = loadAll(delegate, extractor, rowsWithNullKey);
          remainingRowCount.set(buffer.size() + rowsWithNullKey.size());
          // We always return the buffered rows in ascending order of the extracted key ...
          if (rowsWithNullKey.isEmpty()) {
              return buffer.ascending();
          }
          // Return the rows with NULL first ...
          assert nullOrder != null;
          switch (nullOrder) {
              case NULLS_FIRST:
                  return SequentialIterator.create(rowsWithNullKey.iterator(), buffer.ascending());
              case NULLS_LAST:
                  return SequentialIterator.create(buffer.ascending(), rowsWithNullKey.iterator());
          }
          assert false;
          return null;
      }