Browse Source

fix(starfish): Add bitwise operator support to SQL parser (#54894)

These show up on occasion!
George Gritsouk 1 year ago
parent
commit
8e90edebdd

+ 4 - 0
static/app/views/starfish/utils/sqlish/SQLishParser.spec.tsx

@@ -22,6 +22,10 @@ describe('SQLishParser', function () {
       'created >= %s', // Python-style
       'created >= $1', // Rails-style
       '@@ to_tsquery', // Postgres full-text search
+      'flags & %s)', // Bitwise AND
+      'flags | %s)', // Bitwise OR
+      'flags ^ %s)', // Bitwise XOR
+      'flags ~ %s)', // Bitwise NOT
     ])('Parses %s', sql => {
       expect(() => {
         parser.parse(sql);

+ 1 - 1
static/app/views/starfish/utils/sqlish/sqlish.pegjs

@@ -36,4 +36,4 @@ Whitespace
   = Whitespace:[\n\t ]+ { return { type: 'Whitespace', content: Whitespace.join("") } }
 
 GenericToken
-  = GenericToken:[a-zA-Z0-9"'`_\-.=><:,*;!\[\]?$%|/@]+ { return { type: 'GenericToken', content: GenericToken.join('') } }
+  = GenericToken:[a-zA-Z0-9"'`_\-.=><:,*;!\[\]?$%|/@&~^]+ { return { type: 'GenericToken', content: GenericToken.join('') } }