Make zero results work properly
parent
28b6df7afb
commit
8a78e64868
|
@ -1012,12 +1012,6 @@ func (h *Handler) servePromRead(w http.ResponseWriter, r *http.Request, user met
|
|||
h.httpError(w, err.Error(), http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
|
||||
if rs == nil {
|
||||
err = errors.New("no store to read")
|
||||
h.httpError(w, err.Error(), http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
defer rs.Close()
|
||||
|
||||
resp := &remote.ReadResponse{
|
||||
|
|
|
@ -581,7 +581,7 @@ func TestHandler_PromWrite(t *testing.T) {
|
|||
if err != nil {
|
||||
t.Fatal(err.Error())
|
||||
}
|
||||
expFields := models.Fields{"f64": 1.2}
|
||||
expFields := models.Fields{"value": 1.2}
|
||||
if !reflect.DeepEqual(fields, expFields) {
|
||||
t.Fatalf("fields don't match\n\texp: %v\n\tgot: %v", expFields, fields)
|
||||
}
|
||||
|
|
|
@ -22,12 +22,21 @@ type ResultSet struct {
|
|||
mb *multiShardBatchCursors
|
||||
}
|
||||
|
||||
// Close closes the result set. Close is idempotent.
|
||||
func (r *ResultSet) Close() {
|
||||
if r == nil {
|
||||
return // Nothing to do.
|
||||
}
|
||||
r.row.query = nil
|
||||
r.cur.Close()
|
||||
}
|
||||
|
||||
// Next returns true if there are more results available.
|
||||
func (r *ResultSet) Next() bool {
|
||||
if r == nil {
|
||||
return false
|
||||
}
|
||||
|
||||
row := r.cur.Next()
|
||||
if row == nil {
|
||||
return false
|
||||
|
|
|
@ -104,14 +104,14 @@ func (s *Store) Read(ctx context.Context, req *ReadRequest) (Results, error) {
|
|||
return nil, err
|
||||
}
|
||||
if len(shardIDs) == 0 {
|
||||
return nil, nil
|
||||
return (*ResultSet)(nil), nil
|
||||
}
|
||||
|
||||
var cur seriesCursor
|
||||
if ic, err := newIndexSeriesCursor(ctx, req.Predicate, s.TSDBStore.Shards(shardIDs)); err != nil {
|
||||
return nil, err
|
||||
} else if ic == nil {
|
||||
return nil, nil
|
||||
return (*ResultSet)(nil), nil
|
||||
} else {
|
||||
cur = ic
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue