code: func rebuildIndexRanges(ctx sessionctx.Context, is *plannercore.PhysicalIndexScan, idxCols []*expression.Column, colLens []int) (ranges []*ranger.Range, err error) {
  	access := make([]expression.Expression, 0, len(is.AccessCondition))
  	for _, cond := range is.AccessCondition {
  		newCond, err1 := expression.SubstituteCorCol2Constant(cond)
  		if err1 != nil {
  			return nil, err1
  		}
  		access = append(access, newCond)
  	}
  	ranges, _, err = ranger.DetachSimpleCondAndBuildRangeForIndex(ctx, access, idxCols, colLens)
  	return ranges, err
  }
docs: // rebuildIndexRanges will be called if there's correlated column in access conditions. We will rebuild the range
  // by substitute correlated column with the constant.