code: func (idx *Index) RemoveUpperBound(sc *stmtctx.StatementContext, values []types.Datum) (*Histogram, *CMSketch, error) {
  	hist, cms := idx.Histogram.Copy(), idx.CMSketch.Copy()
  	hist.Buckets[hist.Len()-1].Count -= hist.Buckets[hist.Len()-1].Repeat
  	hist.Buckets[hist.Len()-1].Repeat = 0
  	if cms == nil {
  		return hist, nil, nil
  	}
  	var data []byte
  	var err error
  	for _, val := range values {
  		data, err = codec.EncodeKey(sc, data, val)
  		if err != nil {
  			return nil, nil, err
  		}
  		h1, h2 := murmur3.Sum128(data)
  		cms.setValue(h1, h2, 0)
  	}
  	return hist, cms, nil
  }
docs: // RemoveUpperBound removes the upper bound the index stats.
  // It is used when merge stats for incremental analyze.