我记得这个好像是个 bug,已经在 calcite 修复了。 你用的是哪个版本的 flink?
Best, Jark On Thu, 14 May 2020 at 15:30, Senior.Hu <463302...@qq.com> wrote: > Hi All, > 在用FlinkSqlParserImpl.FACTORY解析Flink DML SQL时,发现解析Join with Temporal > Table语法,会自动加上LATERAL关键字,如下所示 > LEFT JOIN > side_room FOR SYSTEM_TIME AS OF a1.proctime as > a2 > ON > a1.rowkey_room = a2.rowkey > 解析后变成如下: > LEFT JOIN LATERAL `side_room` FOR SYSTEM_TIME AS OF > `a1`.`proctime` AS `a2` ON `a1`.`rowkey_room` = `a2`.`rowkey` > > 此SQL语法在Flink SQL中执行会报错如下: > Caused by: org.apache.flink.table.api.SqlParserException: SQL parse > failed. Encountered "`side_room`" at line 7, column 19. > Was expecting one of: > "TABLE" ... > "(" ... > > 我的SqlParser.Config类定义如下: > private final SqlParser.Config config = SqlParser.configBuilder() > > .setParserFactory(FlinkSqlParserImpl.FACTORY) > .setQuoting(Quoting.BACK_TICK) > > .setUnquotedCasing(Casing.UNCHANGED) > > .setQuotedCasing(Casing.UNCHANGED) > .setCaseSensitive(true) > .build(); > > 不知道这个地方为什么会出现这种情况,或者是我这边使用方法不对?