Probably a documentation mistake. Many databases allow ‘$’ and ‘#’ in identifiers. For example the following work on Oracle and MySQL:
CREATE TABLE t (i INTEGER); SELECT i AS j$k FROM t; And this works on Oracle: SELECT i AS j#k FROM t; Julian > On Aug 16, 2022, at 12:11 AM, Itiel Sadeh <iti...@sqreamtech.com.INVALID> > wrote: > > Hello all, > > I've notice the following definition of identifier in parser.jj: > < IDENTIFIER: <LETTER> (<LETTER>|<DIGIT>)* > > > Where the <LETTER> definition includes the dollar sign ($). > The Calcite documentation, as well as other databases doesn't permit > identifiers to start with dollar sign: > >> Unquoted identifiers, such as emp, must start with a letter and can only >> contain letters, digits, and underscores. They are implicitly converted to >> upper case. >> > > Is there a reason for this? > > Thanks, > Itiel