code: func DecodeFeedback(val []byte, q *QueryFeedback, c *CMSketch, isUnsigned bool) error {
  	buf := bytes.NewBuffer(val)
  	dec := gob.NewDecoder(buf)
  	pb := &queryFeedback{}
  	err := dec.Decode(pb)
  	if err != nil {
  		return errors.Trace(err)
  	}
  	if len(pb.IndexRanges) > 0 || len(pb.HashValues) > 0 {
  		decodeFeedbackForIndex(q, pb, c)
  	} else if len(pb.IntRanges) > 0 {
  		decodeFeedbackForPK(q, pb, isUnsigned)
  	} else {
  		err := decodeFeedbackForColumn(q, pb)
  		if err != nil {
  			return errors.Trace(err)
  		}
  	}
  	return nil
  }
docs: // DecodeFeedback decodes a byte slice to feedback.