Hello XuRenhe, Please be aware that our dev list does not allow images.
Regarding your question, I found this on the SQL standard: « An <identifier start> is any character in the Unicode General Category classes “Lu”, “Ll”, “Lt”, “Lm”, “Lo”, or “Nl”. NOTE 95 — The Unicode General Category classes “Lu”, “Ll”, “Lt”, “Lm”, “Lo”, and “Nl” are assigned to Unicode characters that are, respectively, upper-case letters, lower case letters, title-case letters, modifier letters, other letters, and letter numbers. » In case it helps, I found in Wikipedia a link to an older version of the standard [1] which basically says the same thing (page 85). To sum up, identifiers must start with a letter, so Calcite is respecting the standard (and it seems MySql deviates from it). I am not sure if this is something that could (or should) be achieved with the Calcite SqlDialect mechanism; I am not very familiar with it, maybe someone else can provide more information. Best regards, Ruben [1] http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt On Wed, Feb 16, 2022 at 8:18 AM 徐仁和 <xurenhe19910...@gmail.com> wrote: > Hi community: > > Parsing sql fails, when meeting the identifier starting with number. > > Here, test case: > // org.apache.calcite.test.SqlToRelConverterTest > @Test void testIdentifierStartWithNumber() { > final String sql = > "select 1_c1 from (select deptno as 1_c1 from emp)"; > sql(sql).ok(); > } > > It throws an exception as below: > java.lang.RuntimeException: > org.apache.calcite.sql.parser.SqlParseException: Encountered "1" at line 1, > column 36. > Was expecting one of: > <QUOTED_STRING> ... > <BRACKET_QUOTED_IDENTIFIER> ... > <QUOTED_IDENTIFIER> ... > <BACK_QUOTED_IDENTIFIER> ... > <BIG_QUERY_BACK_QUOTED_IDENTIFIER> ... > <HYPHENATED_IDENTIFIER> ... > <IDENTIFIER> ... > <UNICODE_QUOTED_IDENTIFIER> ... > > at > org.apache.calcite.sql.parser.SqlParseException.writeReplace(SqlParseException.java:171) > > *Mysql supports this case, should calcite support it?* > > *Failed png in Calcite:* > [image: image.png] > > *Successful png in MySql:* > [image: image.png] > > > > Best XuRenhe > >