docs: protected int loadAll( NodeSequence sequence,
                             ExtractFromRow extractor,
                             DistinctBuffer<BufferedRow> rowsWithNullKey ) {
          // Put all of the batches from the sequence into the buffer
          Batch batch = sequence.nextBatch();
          int batchSize = 0;
          Object value = null;
          boolean firstBatchCounted = false;
          while (batch != null) {
              while (batch.hasNext()) {
                  batch.nextRow();
                  value = extractor.getValueInRow(batch);
                  if (value instanceof Object[]) {
                      // Put each of the values in the buffer ...
                      for (Object v : (Object[])value) {
                          buffer.put(v, createRow(batch));
                      }
                  } else if (value != null) {
                      buffer.put(value, createRow(batch));
                  } else if (rowsWithNullKey != null) {
                      rowsWithNullKey.addIfAbsent(createRow(batch));
                  }
                  if (!firstBatchCounted) {
                      ++batchSize;    
                  }
              }
              firstBatchCounted = batchSize != 0;
              batch = sequence.nextBatch();
          }
         
          return batchSize;
      }