diff --git a/storage/fanout.go b/storage/fanout.go index a9a3f904b..e52342bc7 100644 --- a/storage/fanout.go +++ b/storage/fanout.go @@ -89,7 +89,9 @@ func (f *fanout) Querier(mint, maxt int64) (Querier, error) { } return nil, errs.Err() } - secondaries = append(secondaries, querier) + if _, ok := querier.(noopQuerier); !ok { + secondaries = append(secondaries, querier) + } } return NewMergeQuerier([]Querier{primary}, secondaries, ChainedSeriesMerge), nil } diff --git a/storage/merge.go b/storage/merge.go index b4ebb440f..bcb0f66fb 100644 --- a/storage/merge.go +++ b/storage/merge.go @@ -46,6 +46,9 @@ type mergeGenericQuerier struct { // // In case of overlaps between the data given by primaries' and secondaries' Selects, merge function will be used. func NewMergeQuerier(primaries, secondaries []Querier, mergeFn VerticalSeriesMergeFunc) Querier { + if len(primaries)+len(secondaries) == 0 { + return NoopQuerier() + } queriers := make([]genericQuerier, 0, len(primaries)+len(secondaries)) for _, q := range primaries { if _, ok := q.(noopQuerier); !ok && q != nil {