|
|
|
|
@ -567,7 +567,10 @@ func (r *indexReader) LabelValues(names ...string) (StringTuples, error) { |
|
|
|
|
key := strings.Join(names, string(sep)) |
|
|
|
|
off, ok := r.labels[key] |
|
|
|
|
if !ok { |
|
|
|
|
return nil, fmt.Errorf("label index doesn't exist") |
|
|
|
|
// XXX(fabxc): hot fix. Should return a partial data error and handle cases
|
|
|
|
|
// where the entire block has no data gracefully.
|
|
|
|
|
return emptyStringTuples{}, nil |
|
|
|
|
//return nil, fmt.Errorf("label index doesn't exist")
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
flag, b, err := r.section(off) |
|
|
|
|
@ -590,6 +593,11 @@ func (r *indexReader) LabelValues(names ...string) (StringTuples, error) { |
|
|
|
|
return st, nil |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
type emptyStringTuples struct{} |
|
|
|
|
|
|
|
|
|
func (emptyStringTuples) At(i int) ([]string, error) { return nil, nil } |
|
|
|
|
func (emptyStringTuples) Len() int { return 0 } |
|
|
|
|
|
|
|
|
|
func (r *indexReader) LabelIndices() ([][]string, error) { |
|
|
|
|
res := [][]string{} |
|
|
|
|
|
|
|
|
|
|