Browse Source

Merge pull request #14257 from grafana/davkal/fix-14250

Explore: Fix logging query parser for regex with quantifiers
Torkel Ödegaard 7 years ago
parent
commit
d16b348868

+ 11 - 0
public/app/plugins/datasource/logging/query_utils.test.ts

@@ -42,4 +42,15 @@ describe('parseQuery', () => {
       regexp: '',
     });
   });
+
+  it('returns query and regexp with quantifiers', () => {
+    expect(parseQuery('{foo="bar"} \\.java:[0-9]{1,5}')).toEqual({
+      query: '{foo="bar"}',
+      regexp: '\\.java:[0-9]{1,5}',
+    });
+    expect(parseQuery('\\.java:[0-9]{1,5} {foo="bar"}')).toEqual({
+      query: '{foo="bar"}',
+      regexp: '\\.java:[0-9]{1,5}',
+    });
+  });
 });

+ 2 - 2
public/app/plugins/datasource/logging/query_utils.ts

@@ -1,11 +1,11 @@
-const selectorRegexp = /{[^{]*}/g;
+const selectorRegexp = /(?:^|\s){[^{]*}/g;
 export function parseQuery(input: string) {
   const match = input.match(selectorRegexp);
   let query = '';
   let regexp = input;
 
   if (match) {
-    query = match[0];
+    query = match[0].trim();
     regexp = input.replace(selectorRegexp, '').trim();
   }