From fdc681788bb59acbe6229312d6dec7638bb539c2 Mon Sep 17 00:00:00 2001 From: Dimitris Sotirakis Date: Wed, 15 Sep 2021 09:37:33 +0100 Subject: [PATCH] InfluxDB: Fix regex to identify `/` as separator (#39185) * Fix regex to identify / as separator * Update regex --- pkg/tsdb/influxdb/response_parser.go | 2 +- pkg/tsdb/influxdb/response_parser_test.go | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/pkg/tsdb/influxdb/response_parser.go b/pkg/tsdb/influxdb/response_parser.go index 2a98bd9a52c..b60a107fb71 100644 --- a/pkg/tsdb/influxdb/response_parser.go +++ b/pkg/tsdb/influxdb/response_parser.go @@ -16,7 +16,7 @@ import ( type ResponseParser struct{} var ( - legendFormat = regexp.MustCompile(`\[\[([\@\/\w-]+)(\.[\@\/\w-]+)*\]\]*|\$\s*([\@\/\w-]+?)*`) + legendFormat = regexp.MustCompile(`\[\[([\@\/\w-]+)(\.[\@\/\w-]+)*\]\]*|(\$*([\@\w-]+?))*`) ) func (rp *ResponseParser) Parse(buf io.ReadCloser, query *Query) *backend.QueryDataResponse { diff --git a/pkg/tsdb/influxdb/response_parser_test.go b/pkg/tsdb/influxdb/response_parser_test.go index 2348dde1803..01aed955963 100644 --- a/pkg/tsdb/influxdb/response_parser_test.go +++ b/pkg/tsdb/influxdb/response_parser_test.go @@ -269,6 +269,20 @@ func TestInfluxdbResponseParser(t *testing.T) { t.Errorf("Result mismatch (-want +got):\n%s", diff) } + query = &Query{Alias: "alias $tag_datacenter/$tag_datacenter"} + result = parser.Parse(prepare(response), query) + frame = result.Responses["A"] + name = "alias America/America" + testFrame.Name = name + newField = data.NewField("value", labels, []*float64{ + pointer.Float64(222), + }) + testFrame.Fields[1] = newField + testFrame.Fields[1].Config = &data.FieldConfig{DisplayNameFromDS: name} + if diff := cmp.Diff(testFrame, frame.Frames[0], data.FrameTestCompareOptions()...); diff != "" { + t.Errorf("Result mismatch (-want +got):\n%s", diff) + } + query = &Query{Alias: "alias [[col]]", Measurement: "10m"} result = parser.Parse(prepare(response), query) frame = result.Responses["A"]