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

Reply via email to