func ToQuery(from, to int64, matchers []*labels.Matcher, p *storage.SelectParams) (*prompb.Query, error) {
	ms, err := toLabelMatchers(matchers)
	if err != nil {
		return nil, err
	}

	var rp *prompb.ReadHints
	if p != nil {
		rp = &prompb.ReadHints{
			StepMs:  p.Step,
			Func:    p.Func,
			StartMs: p.Start,
			EndMs:   p.End,
		}
	}

	return &prompb.Query{
		StartTimestampMs: from,
		EndTimestampMs:   to,
		Matchers:         ms,
		Hints:            rp,
	}, nil
}
func ToQuery(from, to int64, matchers []*labels.Matcher, p *storage.SelectParams) (*prompb.Query, error) {
	ms, err := toLabelMatchers(matchers)
	if err != nil {
		return nil, err
	}

	var rp *prompb.ReadHints
	if p != nil {
		rp = &prompb.ReadHints{
			StepMs:  p.Step,
			Func:    p.Func,
			StartMs: p.Start,
			EndMs:   p.End,
		}
	}

	return &prompb.Query{
		StartTimestampMs: from,
		EndTimestampMs:   to,
		Matchers:         ms,
		Hints:            rp,
	}, nil
}
func ToQuery ( from , to int64 , matchers [ ] * labels . Matcher , p * storage . SelectParams ) ( * prompb . Query , error ) { ms , err := toLabelMatchers ( matchers ) if err != nil { return nil , err } var rp * prompb . ReadHints if p != nil { rp = & prompb . ReadHints { StepMs : p . Step , Func : p . Func , StartMs : p . Start , EndMs : p . End , } } return & prompb . Query { StartTimestampMs : from , EndTimestampMs : to , Matchers : ms , Hints : rp , } , nil }
// ToQuery builds a Query proto.
ToQuery builds a Query proto .