mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
@@ -11,7 +11,8 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
regexpOperatorPattern *regexp.Regexp = regexp.MustCompile(`^\/.*\/$`)
|
regexpOperatorPattern *regexp.Regexp = regexp.MustCompile(`^\/.*\/$`)
|
||||||
|
regexpMeasurementPattern *regexp.Regexp = regexp.MustCompile(`^\/.*\/$`)
|
||||||
)
|
)
|
||||||
|
|
||||||
func (query *Query) Build(queryContext *tsdb.QueryContext) (string, error) {
|
func (query *Query) Build(queryContext *tsdb.QueryContext) (string, error) {
|
||||||
@@ -108,7 +109,14 @@ func (query *Query) renderMeasurement() string {
|
|||||||
} else {
|
} else {
|
||||||
policy = `"` + query.Policy + `".`
|
policy = `"` + query.Policy + `".`
|
||||||
}
|
}
|
||||||
return fmt.Sprintf(` FROM %s"%s"`, policy, query.Measurement)
|
|
||||||
|
measurement := query.Measurement
|
||||||
|
|
||||||
|
if !regexpMeasurementPattern.Match([]byte(measurement)) {
|
||||||
|
measurement = fmt.Sprintf(`"%s"`, measurement)
|
||||||
|
}
|
||||||
|
|
||||||
|
return fmt.Sprintf(` FROM %s%s`, policy, measurement)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (query *Query) renderWhereClause() string {
|
func (query *Query) renderWhereClause() string {
|
||||||
|
@@ -120,5 +120,17 @@ func TestInfluxdbQueryBuilder(t *testing.T) {
|
|||||||
|
|
||||||
So(strings.Join(query.renderTags(), ""), ShouldEqual, `"key" = 'value'`)
|
So(strings.Join(query.renderTags(), ""), ShouldEqual, `"key" = 'value'`)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
Convey("can render regular measurement", func() {
|
||||||
|
query := &Query{Measurement: `apa`, Policy: "policy"}
|
||||||
|
|
||||||
|
So(query.renderMeasurement(), ShouldEqual, ` FROM "policy"."apa"`)
|
||||||
|
})
|
||||||
|
|
||||||
|
Convey("can render regexp measurement", func() {
|
||||||
|
query := &Query{Measurement: `/apa/`, Policy: "policy"}
|
||||||
|
|
||||||
|
So(query.renderMeasurement(), ShouldEqual, ` FROM "policy"./apa/`)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user