code: func (e *CheckIndexRangeExec) Next(ctx context.Context, req *chunk.RecordBatch) error {
  	req.Reset()
  	handleIdx := e.schema.Len() - 1
  	for {
  		err := e.result.Next(ctx, e.srcChunk)
  		if err != nil {
  			return err
  		}
  		if e.srcChunk.NumRows() == 0 {
  			return nil
  		}
  		iter := chunk.NewIterator4Chunk(e.srcChunk)
  		for row := iter.Begin(); row != iter.End(); row = iter.Next() {
  			handle := row.GetInt64(handleIdx)
  			for _, hr := range e.handleRanges {
  				if handle >= hr.Begin && handle < hr.End {
  					req.AppendRow(row)
  					break
  				}
  			}
  		}
  		if req.NumRows() > 0 {
  			return nil
  		}
  	}
  }
docs: // Next implements the Executor Next interface.