我正在尝试使用 Apache Calcite 的 SqlParser 来获取我用 Hive 和 Impala 编写的视图的实体级沿袭。但是,解析器会在以下情况下引发异常。
SELECT emp.1ab FROM emp -- Column name begins with numeric
org.apache.calcite.sql.parser.SqlParseException: Encountered ".1" at line 1, column 12.
Was expecting one of:
<EOF>
"AS" ...
SELECT PERIOD from emp -- column name is a key word (period)
Caused by: org.apache.calcite.sql.parser.impl.ParseException: Encountered "period from" at line 1, column 9.
Was expecting one of:
"ALL" ...
这是我的 SqlParser 配置。
SqlParser.Config config = SqlParser
.configBuilder()
.setConformance(SqlConformanceEnum.LENIENT)
.build();
是否有任何其他配置设置可用于自定义解析器以满足我的需要。所有这些查询在 Hive 中都是有效的。