docs: public final MutableObjectIterator<BinaryRow> getIterator() {
  		return new MutableObjectIterator<BinaryRow>() {
  			private final int size = size();
  			private int current = 0;
  
  			private int currentSegment = 0;
  			private int currentOffset = 0;
  
  			private MemorySegment currentIndexSegment = sortIndex.get(0);
  
  			@Override
  			public BinaryRow next(BinaryRow target) {
  				if (this.current < this.size) {
  					this.current++;
  					if (this.currentOffset > lastIndexEntryOffset) {
  						this.currentOffset = 0;
  						this.currentIndexSegment = sortIndex.get(++this.currentSegment);
  					}
  
  					long pointer = this.currentIndexSegment.getLong(this.currentOffset);
  					this.currentOffset += indexEntrySize;
  
  					try {
  						return getRecordFromBuffer(target, pointer);
  					} catch (IOException ioe) {
  						throw new RuntimeException(ioe);
  					}
  				} else {
  					return null;
  				}
  			}
  
  			@Override
  			public BinaryRow next() {
  				throw new RuntimeException("Not support!");
  			}
  		};
  	}