code: public boolean nextBatch() throws IOException {
      for (WritableColumnVector vector : columnVectors) {
        vector.reset();
      }
      columnarBatch.setNumRows(0);
      if (rowsReturned >= totalRowCount) return false;
      checkEndOfRowGroup();
  
      int num = (int) Math.min((long) capacity, totalCountLoadedSoFar - rowsReturned);
      for (int i = 0; i < columnReaders.length; ++i) {
        if (columnReaders[i] == null) continue;
        columnReaders[i].readBatch(num, columnVectors[i]);
      }
      rowsReturned += num;
      columnarBatch.setNumRows(num);
      numBatched = num;
      batchIdx = 0;
      return true;
    }
docs: Advances to the next batch of rows. Returns false if there are no more.