func (ng *Engine) NewRangeQuery(q storage.Queryable, qs string, start, end time.Time, interval time.Duration) (Query, error) {
	expr, err := ParseExpr(qs)
	if err != nil {
		return nil, err
	}
	if expr.Type() != ValueTypeVector && expr.Type() != ValueTypeScalar {
		return nil, errors.Errorf("invalid expression type %q for range query, must be Scalar or instant Vector", documentedType(expr.Type()))
	}
	qry := ng.newQuery(q, expr, start, end, interval)
	qry.q = qs

	return qry, nil
}
func (ng *Engine) NewRangeQuery(q storage.Queryable, qs string, start, end time.Time, interval time.Duration) (Query, error) {
	expr, err := ParseExpr(qs)
	if err != nil {
		return nil, err
	}
	if expr.Type() != ValueTypeVector && expr.Type() != ValueTypeScalar {
		return nil, errors.Errorf("invalid expression type %q for range query, must be Scalar or instant Vector", documentedType(expr.Type()))
	}
	qry := ng.newQuery(q, expr, start, end, interval)
	qry.q = qs

	return qry, nil
}
func ( ng * Engine ) NewRangeQuery ( q storage . Queryable , qs string , start , end time . Time , interval time . Duration ) ( Query , error ) { expr , err := ParseExpr ( qs ) if err != nil { return nil , err } if expr . Type ( ) != ValueTypeVector && expr . Type ( ) != ValueTypeScalar { return nil , errors . Errorf ( " " , documentedType ( expr . Type ( ) ) ) } qry := ng . newQuery ( q , expr , start , end , interval ) qry . q = qs return qry , nil }
// NewRangeQuery returns an evaluation query for the given time range and with
// the resolution set by the interval.
NewRangeQuery returns an evaluation query for the given time range and with the resolution set by the interval .