code: func Decode(b []byte, size int) ([]types.Datum, error) {
  	if len(b) < 1 {
  		return nil, errors.New("invalid encoded key")
  	}
  
  	var (
  		err    error
  		values = make([]types.Datum, 0, size)
  	)
  
  	for len(b) > 0 {
  		var d types.Datum
  		b, d, err = DecodeOne(b)
  		if err != nil {
  			return nil, errors.Trace(err)
  		}
  
  		values = append(values, d)
  	}
  
  	return values, nil
  }
docs: // Decode decodes values from a byte slice generated with EncodeKey or EncodeValue
  // before.
  // size is the size of decoded datum slice.