From 72342939d661adf68fb22231c0c28a0cd9ab96e3 Mon Sep 17 00:00:00 2001 From: Roman Khavronenko Date: Wed, 17 Aug 2022 20:32:25 +0200 Subject: [PATCH] lib/storage: fix the search for empty label name (#2991) * lib/storage: fix the search for empty label name Signed-off-by: hagen1778 * Apply suggestions from code review Signed-off-by: hagen1778 Co-authored-by: Aliaksandr Valialkin --- lib/storage/index_db.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/storage/index_db.go b/lib/storage/index_db.go index 2755fa5a20..0b68f29700 100644 --- a/lib/storage/index_db.go +++ b/lib/storage/index_db.go @@ -818,7 +818,7 @@ func (is *indexSearch) searchLabelNamesWithFiltersOnDate(qt *querytracer.Tracer, if filter != nil && filter.Len() <= 100e3 { // It is faster to obtain label names by metricIDs from the filter // instead of scanning the inverted index for the matching filters. - // This hould help https://github.com/VictoriaMetrics/VictoriaMetrics/issues/2978 + // This would help https://github.com/VictoriaMetrics/VictoriaMetrics/issues/2978 metricIDs := filter.AppendTo(nil) qt.Printf("sort %d metricIDs", len(metricIDs)) return is.getLabelNamesForMetricIDs(qt, metricIDs, lns, maxLabelNames) @@ -1014,7 +1014,7 @@ func (is *indexSearch) searchLabelValuesWithFiltersOnDate(qt *querytracer.Tracer if filter != nil && filter.Len() < 100e3 { // It is faster to obtain label values by metricIDs from the filter // instead of scanning the inverted index for the matching filters. - // This hould help https://github.com/VictoriaMetrics/VictoriaMetrics/issues/2978 + // This would help https://github.com/VictoriaMetrics/VictoriaMetrics/issues/2978 metricIDs := filter.AppendTo(nil) qt.Printf("sort %d metricIDs", len(metricIDs)) return is.getLabelValuesForMetricIDs(qt, lvs, labelName, metricIDs, maxLabelValues) @@ -1077,6 +1077,9 @@ func (is *indexSearch) searchLabelValuesWithFiltersOnDate(qt *querytracer.Tracer } func (is *indexSearch) getLabelValuesForMetricIDs(qt *querytracer.Tracer, lvs map[string]struct{}, labelName string, metricIDs []uint64, maxLabelValues int) error { + if labelName == "" { + labelName = "__name__" + } var mn MetricName foundLabelValues := 0 var buf []byte