From 5838ceb53d492f547180fefef2384f01eb7b0577 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20S=CC=8Ctibrany=CC=81?= Date: Tue, 27 Apr 2021 08:35:58 +0200 Subject: [PATCH] Specify that indexheader.Reader returns LabelNames in order, so we can use that. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Peter Štibraný --- pkg/block/indexheader/header.go | 2 +- pkg/store/bucket.go | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/pkg/block/indexheader/header.go b/pkg/block/indexheader/header.go index 657427bd6f7..8ecef33564d 100644 --- a/pkg/block/indexheader/header.go +++ b/pkg/block/indexheader/header.go @@ -35,6 +35,6 @@ type Reader interface { // then empty string is returned and no error. LabelValues(name string) ([]string, error) - // LabelNames returns all label names. + // LabelNames returns all label names in sorted order. LabelNames() ([]string, error) } diff --git a/pkg/store/bucket.go b/pkg/store/bucket.go index 8ee61af6151..e8aaf293e1d 100644 --- a/pkg/store/bucket.go +++ b/pkg/store/bucket.go @@ -1208,13 +1208,12 @@ func (s *BucketStore) LabelNames(ctx context.Context, req *storepb.LabelNamesReq var result []string if len(reqSeriesMatchers) == 0 { // Do it via index reader to have pending reader registered correctly. + // LabelNames are already sorted. res, err := indexr.block.indexHeaderReader.LabelNames() if err != nil { return errors.Wrapf(err, "label names for block %s", b.meta.ULID) } - sort.Strings(res) - // Add a set for the external labels as well. // We're not adding them directly to res because there could be duplicates. // b.extLset is already sorted by label name, no need to sort it again.