如何解决使用Facebook Presto SQL Parser生成SQL语句
我正在努力使用Presto Parser生成SQL语句。这是用例的详细信息-
- 解析使用外部生成的现有SQL语句 前端ui(nodejs应用)。
- 追加新列和where子句条件。
- 重新生成SQL语句。这些SQL将在Hive / Spark上执行。
到目前为止,我使用Facebook Presto parser在第1步和第2步上取得了成功,还无法弄清楚如何生成SQL?
我可以使用其他一些库来生成SQL吗?任何建议都将不胜感激。
解决方法
您可以使用SqlFormatter类(https://github.com/prestosql/presto/blob/master/presto-parser/src/main/java/io/prestosql/sql/SqlFormatter.java)将已解析的语法树转换回SQL文本:
SqlParser parser = new SqlParser();
Statement statement = parser.createStatement("SELECT * FROM t WHERE v = 0",new ParsingOptions());
String formatted = SqlFormatter.formatSql(statement);
请记住,这些不是Presto中的公共API,并且会随时更改。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。