【问题标题】:Generate SQL statement using Facebook Presto SQL Parser使用 Facebook Presto SQL Parser 生成 SQL 语句
【发布时间】:2020-12-06 21:58:15
【问题描述】:

我正在努力使用 Presto Parser 生成 SQL 语句。以下是用例详细信息-

  1. 解析使用外部生成的现有 SQL 语句 前端用户界面(nodejs 应用)。
  2. 附加新列和 where 子句条件。
  3. 重新生成 SQL 语句。这些 SQL 将在 Hive/Spark 上执行。

到目前为止,我使用Facebook Presto parser 在第 1 步和第 2 步上取得了成功,但无法弄清楚如何返回 SQL?

我应该使用其他库来生成 SQL 吗?如有任何建议,我们将不胜感激。

【问题讨论】:

    标签: presto sql-parser


    【解决方案1】:

    您可以使用 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,可能会发生变化。

    【讨论】:

      猜你喜欢
      • 2014-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-13
      • 1970-01-01
      • 2010-12-06
      • 2020-12-16
      相关资源
      最近更新 更多