nene / sql-parser-cst

Parses SQL into Concrete Syntax Tree (CST)
GNU General Public License v2.0
115 stars 7 forks source link

PostgreSQL `^@` operator causes parse error #79

Open nene opened 3 weeks ago

nene commented 3 weeks ago

The following fails to parse:

SELECT 'foo' ^@ ANY = '{f,b}'
Syntax Error: Unexpected "ANY"
Was expecting to see: "$", "(", "+", "-", ":", "?", "@", "ARRAY", "CASE", "CAST", "CURRENT_CATALOG", "CURRENT_DATE", "CURRENT_DATETIME", "CURRENT_ROLE", "CURRENT_SCHEMA", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_USER", "DATE", "DATETIME", "EXISTS", "EXTRACT", "FALSE", "INTERVAL", "JSON", "JSONB", "LOCALTIME", "LOCALTIMESTAMP", "NULL", "OPERATOR", "ROW", "SAFE_CAST", "SESSION_USER", "SYSTEM_USER", "TIME", "TIMESTAMP", "TRUE", "USER", "X", "b", "~", identifier, number, string, or whitespace
--> undefined:2:17
  |
2 | SELECT 'foo' ^@ ANY = '{f,b}'
  |                 ^

See also: https://github.com/sql-formatter-org/sql-formatter/issues/734

felixfbecker commented 3 weeks ago

FYI I made a mistake in the code snippet, it should be

SELECT 'foo' ^@ ANY ('{f,b}')