我想将 SQL 语句(ANSI SQL 或 HiveQL)解析为等效的 AST。当我尝试解析其中包含“lateral view explode”关键字(这是一种有效的 HiveQL 语法)的语句时,Babel 失败并出现 ParseException。将这些作为关键字添加到 Babel 的默认关键字列表中也无济于事。谁能给我指出一个类似的例子。
最佳答案
方解石确实支持横向关键字,但不支持“view explode”关键字。: https://github.com/apache/calcite/blob/master/core/src/main/codegen/templates/Parser.jj#L2083
您可以扩展解析器,并且可以使用自由标记支持来跳过不受支持的关键字(我自己还没有尝试过): https://calcite.apache.org/docs/adapter.html#extending-the-parser
但是,如果需要通过相应的SqlNode实现访问,则需要修改核心模块,需要贡献。
关于 parser.jj 的更多信息: https://stackoverflow.com/a/44467850/1332098
关于sql - 如何在 Babel 解析器中添加诸如 “lateral view explode” 之类的关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58438357/