Reserved Words
Opteryx reserves far fewer words than most SQL engines. A keyword is only a problem where the parser would otherwise have to guess whether you meant the keyword or a name — in practice that is a bare column reference and a bare table name, and nowhere else.
Everything on this page is escapable. Double quotes or backticks always work, including for every word listed below.
Reserved as a bare column reference
SELECT start FROM … fails for these; SELECT "start" FROM … does not.
ALL DISTINCT DISTINCTROW EXISTS FROM INTERVAL TOP TRIM
Reserved as a bare table name
SELECT * FROM table fails for these; SELECT * FROM "table" does not.
LATERAL TABLE
Quoting
Two quoting styles identify a name rather than a string:
SELECT "FROM" FROM events; -- double quotes
SELECT `FROM` FROM events; -- backticksSingle quotes are only for string literals — 'FROM' is the five-character
text, not a column.
Backticks are the only way to quote a name containing a hyphen, because a bare
- is always the subtraction operator (a-b parses as arithmetic). Blob-store
paths usually need them:
SELECT * FROM `my-bucket`.`my-data`;Aliases Are Not Restricted
Unlike Snowflake and Postgres, Opteryx does not reserve anything in an alias
position — SELECT 1 AS from and … AS t(select) both parse. Quoting an alias
is still clearer, but it is not required.
Notes
- This list is derived by testing every keyword the parser knows (935 candidates) in each position, so it reflects what the engine actually rejects rather than what the SQL standard reserves.
- No word is reserved in both positions — a name that fails as a column may still be a valid table name, and vice versa.
- Identifiers may start with a letter,
_,$or@, and$-prefixed names are reserved for Opteryx's own virtual datasets.