code: func (e *IndexReaderExecutor) Open(ctx context.Context) error {
  	var err error
  	if e.corColInAccess {
  		e.ranges, err = rebuildIndexRanges(e.ctx, e.plans[0].(*plannercore.PhysicalIndexScan), e.idxCols, e.colLens)
  		if err != nil {
  			return err
  		}
  	}
  	kvRanges, err := distsql.IndexRangesToKVRanges(e.ctx.GetSessionVars().StmtCtx, e.physicalTableID, e.index.ID, e.ranges, e.feedback)
  	if err != nil {
  		e.feedback.Invalidate()
  		return err
  	}
  	return e.open(ctx, kvRanges)
  }
docs: // Open implements the Executor Open interface.