diff --git a/public/app/plugins/datasource/influxdb/queryBuilder.js b/public/app/plugins/datasource/influxdb/queryBuilder.js index fdd30ee5b94..9e9cd01ffc8 100644 --- a/public/app/plugins/datasource/influxdb/queryBuilder.js +++ b/public/app/plugins/datasource/influxdb/queryBuilder.js @@ -44,7 +44,10 @@ function (_) { } if (measurement) { - query += ' FROM "' + measurement + '"'; + if (!measurement.match('^/.*/') && !measurement.match(/^merge\(.*\)/)) { + measurement = '"' + measurement+ '"'; + } + query += ' FROM ' + measurement; } if (withKey) { diff --git a/public/test/specs/influx09-querybuilder-specs.js b/public/test/specs/influx09-querybuilder-specs.js index 5fed41e7c2b..9a9ddd15fe5 100644 --- a/public/test/specs/influx09-querybuilder-specs.js +++ b/public/test/specs/influx09-querybuilder-specs.js @@ -102,6 +102,12 @@ define([ expect(query).to.be('SHOW TAG KEYS FROM "cpu"'); }); + it('should handle regex measurement in tag keys query', function() { + var builder = new InfluxQueryBuilder({ measurement: '/.*/', tags: [] }); + var query = builder.buildExploreQuery('TAG_KEYS'); + expect(query).to.be('SHOW TAG KEYS FROM /.*/'); + }); + it('should have no conditions in tags keys query given query with no measurement or tag', function() { var builder = new InfluxQueryBuilder({ measurement: '', tags: [] }); var query = builder.buildExploreQuery('TAG_KEYS');