From a948dfe5149a9845edde752d36f0e9b9d38a3be9 Mon Sep 17 00:00:00 2001 From: bergquist Date: Thu, 10 Nov 2016 14:16:18 +0100 Subject: [PATCH] fix(influxdb): fixes broken raw query usage --- pkg/tsdb/influxdb/model_parser.go | 2 ++ pkg/tsdb/influxdb/models.go | 1 + pkg/tsdb/influxdb/query_builder.go | 2 +- pkg/tsdb/influxdb/query_builder_test.go | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/pkg/tsdb/influxdb/model_parser.go b/pkg/tsdb/influxdb/model_parser.go index 2db7a78ed75..410bf8f6e82 100644 --- a/pkg/tsdb/influxdb/model_parser.go +++ b/pkg/tsdb/influxdb/model_parser.go @@ -12,6 +12,7 @@ type InfluxdbQueryParser struct{} func (qp *InfluxdbQueryParser) Parse(model *simplejson.Json, dsInfo *tsdb.DataSourceInfo) (*Query, error) { policy := model.Get("policy").MustString("default") rawQuery := model.Get("query").MustString("") + useRawQuery := model.Get("rawQuery").MustBool(false) alias := model.Get("alias").MustString("") measurement := model.Get("measurement").MustString("") @@ -54,6 +55,7 @@ func (qp *InfluxdbQueryParser) Parse(model *simplejson.Json, dsInfo *tsdb.DataSo RawQuery: rawQuery, Interval: interval, Alias: alias, + UseRawQuery: useRawQuery, }, nil } diff --git a/pkg/tsdb/influxdb/models.go b/pkg/tsdb/influxdb/models.go index 0dcecd20773..44e05608290 100644 --- a/pkg/tsdb/influxdb/models.go +++ b/pkg/tsdb/influxdb/models.go @@ -8,6 +8,7 @@ type Query struct { GroupBy []*QueryPart Selects []*Select RawQuery string + UseRawQuery bool Alias string Interval string diff --git a/pkg/tsdb/influxdb/query_builder.go b/pkg/tsdb/influxdb/query_builder.go index b783ff5c603..8b3146d59fc 100644 --- a/pkg/tsdb/influxdb/query_builder.go +++ b/pkg/tsdb/influxdb/query_builder.go @@ -17,7 +17,7 @@ var ( type QueryBuilder struct{} func (qb *QueryBuilder) Build(query *Query, queryContext *tsdb.QueryContext) (string, error) { - if query.RawQuery != "" { + if query.UseRawQuery && query.RawQuery != "" { q := query.RawQuery q = strings.Replace(q, "$timeFilter", qb.renderTimeFilter(query, queryContext), 1) diff --git a/pkg/tsdb/influxdb/query_builder_test.go b/pkg/tsdb/influxdb/query_builder_test.go index 408db18e549..e97c7d8cd52 100644 --- a/pkg/tsdb/influxdb/query_builder_test.go +++ b/pkg/tsdb/influxdb/query_builder_test.go @@ -79,6 +79,7 @@ func TestInfluxdbQueryBuilder(t *testing.T) { GroupBy: []*QueryPart{groupBy1, groupBy3}, Interval: "10s", RawQuery: "Raw query", + UseRawQuery: true, } rawQuery, err := builder.Build(query, queryContext)