当前位置: 首页 > 知识库问答 >
问题:

使用Facebook Presto SQL解析器生成SQL语句

公良云
2023-03-14

我正在努力使用Presto解析器生成SQL语句。以下是使用数据库的详细信息-

    null

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

共有1个答案

谭浩皛
2023-03-14

您可以使用SqlFormatter类(https://github.com/prestoSQL/presto/blob/master/presto-parser/src/main/java/io/prestoSQL/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,可能会发生更改。

 类似资料:
  • 问题内容: 我正在尝试解析一个较大的fasta文件,并且遇到内存不足的错误。一些建议,以改善数据处理将不胜感激。当前程序正确打印出名称,但是部分通过文件我得到一个MemoryError 这是发电机 这是呼叫者存根,这部分工作后会添加更多 对于那些不熟悉fasta格式的人,这里是一个示例 每个条目均以“>”开头,说明名称等,然后接下来的N行是数据。除了下一行开头有“>”的行以外,没有定义的数据结尾。

  • 我正试图通过Jison为ChucK语言生成JavaScript解析器,并且已经有了一个良好的开端,只是生成的解析器无法处理语言中的歧义。最初的ChucK编译器是由Bison生成的,它必须能够以某种方式解决这些歧义。 出于这个问题的目的,我已经将这个问题简化为一个仅表示一种歧义的解释语法。作为参考,我列出了所有相关文件(包括生成的解析器)的要点。项目结构如下: 语言/词汇。js:lexer 语法本身

  • 我正在尝试使用ANTLRV4为一个简单的自定义语法生成一个lexer和解析器。问题是,当我运行Antlr.jar实用程序时,它生成了一个Lexer文件,而不是一个解析器文件,我认为它应该生成。 简单语法 hellolexer.js hellolexer.tokens 所需输出 hellolexer.js helloparser.js hellolistener.js hellovisitor.js

  • 问题内容: 我需要以下工具: 方便地解析Java源代码并轻松访问给定的元素。 轻松生成源代码文件,轻松将数据结构转换为代码 有什么好的技巧,库,框架,工具吗?谢谢你的帮助。 问题答案: 从Java 6开始,编译器在JDK中包含一个API。通过它,您可以通过API 访问Java解析器的结果。JDK5以Mirror API 的形式提供了相同的功能。有一个很好的介绍性文章在这里。 我见过的最好的代码生成

  • 从这里使用Lexer和解析器: https://raw.githubusercontent.com/antlr/grammars-v4/master/java/JavaLexer.g4 https://raw.githubusercontent.com/antlr/grammars-v4/master/java/JavaParser.g4 使用antlr-4.6生成Python3目标 antlr-

  • 问题内容: 我想在非关系数据存储的顶部创建一个SQL接口。非关系数据存储,但是以关系方式访问数据是有意义的。 我正在研究使用ANTLR生成将SQL表示为关系代数表达式的AST。然后通过评估/遍历树来返回数据。 我以前从未实现过解析器,因此我想就如何最好地实现SQL解析器和评估器提供一些建议。 上述方法听起来是否正确? 还有其他我应该研究的工具/库吗?就像PLY或Pyparsing一样。 指向对我有