code: func (e *CleanupIndexExec) Open(ctx context.Context) error {
  	if err := e.baseExecutor.Open(ctx); err != nil {
  		return err
  	}
  	e.idxChunk = chunk.New(e.getIdxColTypes(), e.initCap, e.maxChunkSize)
  	e.idxValues = make(map[int64][][]types.Datum, e.batchSize)
  	e.batchKeys = make([]kv.Key, 0, e.batchSize)
  	e.idxValsBufs = make([][]types.Datum, e.batchSize)
  	sc := e.ctx.GetSessionVars().StmtCtx
  	idxKey, _, err := e.index.GenIndexKey(sc, []types.Datum{{}}, math.MinInt64, nil)
  	if err != nil {
  		return err
  	}
  	e.lastIdxKey = idxKey
  	return nil
  }
docs: // Open implements the Executor Open interface.